diff --git a/data/homing/20260625_172504/aruco_marker_poses.csv b/data/homing/20260625_172504/aruco_marker_poses.csv new file mode 100644 index 0000000..e67e53b --- /dev/null +++ b/data/homing/20260625_172504/aruco_marker_poses.csv @@ -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 diff --git a/data/homing/20260625_172504/aruco_marker_poses.json b/data/homing/20260625_172504/aruco_marker_poses.json new file mode 100644 index 0000000..a8d60f5 --- /dev/null +++ b/data/homing/20260625_172504/aruco_marker_poses.json @@ -0,0 +1,2002 @@ +{ + "schema_version": "1.1", + "stage": "corner_marker_poses", + "created_utc": "2026-06-25T17:25:15Z", + "summary": { + "num_cameras": 3, + "num_markers": 43 + }, + "cameras": [ + { + "camera_id": "cam0", + "position_m": [ + 0.3353340810233093, + -0.8856564828689467, + 0.46837261673851105 + ], + "position_mm": [ + 335.3340810233093, + -885.6564828689467, + 468.37261673851106 + ], + "direction": [ + -0.0658801719546318, + 0.8924656510353088, + -0.4462788999080658 + ] + }, + { + "camera_id": "cam1", + "position_m": [ + 0.29680883948912407, + -0.46281573382217234, + 0.780610463027648 + ], + "position_mm": [ + 296.80883948912407, + -462.8157338221723, + 780.610463027648 + ], + "direction": [ + 0.09503374248743057, + 0.43309515714645386, + -0.8963242769241333 + ] + }, + { + "camera_id": "cam2", + "position_m": [ + 0.7129078380464278, + -0.665532940145086, + 0.7243147371422545 + ], + "position_mm": [ + 712.9078380464277, + -665.5329401450861, + 724.3147371422544 + ], + "direction": [ + -0.42887139320373535, + 0.5944520831108093, + -0.6802176833152771 + ] + } + ], + "markers": [ + { + "marker_id": 0, + "link": "unknown", + "set": "", + "position_m": [ + 0.5052044950810802, + -0.10088315228774337, + -0.007159526284560855 + ], + "position_mm": [ + 505.2044950810802, + -100.88315228774337, + -7.159526284560855 + ], + "normal": [ + 0.02188744500006233, + 0.03623762599735092, + 0.9991034852373629 + ], + "corners_m": [ + [ + 0.4931210221704284, + -0.08902251256112026, + -0.007210591171902941 + ], + [ + 0.5176345599088277, + -0.0887270038126701, + -0.007989169054565416 + ], + [ + 0.5172123894076679, + -0.1125274545805471, + -0.006883019634597008 + ], + [ + 0.4928500088373972, + -0.11325563819663605, + -0.0065553252771780555 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.24413054487405, + "weight": 0.4875 + }, + { + "marker_id": 46, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5378264416607417, + 0.18551013238997283, + -0.027879291369311943 + ], + "position_mm": [ + 537.8264416607417, + 185.51013238997282, + -27.879291369311943 + ], + "normal": [ + -0.08568396374076537, + -0.05353565205905043, + 0.9948830043358282 + ], + "corners_m": [ + [ + 0.5263755699068333, + 0.1749085675608892, + -0.02961055882761357 + ], + [ + 0.5253878447940988, + 0.196777444639459, + -0.02817115704407417 + ], + [ + 0.549392058081372, + 0.19660090198942143, + -0.026452282542808018 + ], + [ + 0.5501502938606626, + 0.17375361537012163, + -0.027283167062752012 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.199000183212853, + "weight": 0.3447 + }, + { + "marker_id": 47, + "link": "Board", + "set": "A0", + "position_m": [ + 0.34317984651688416, + -0.2862937692049697, + -0.027164138591258966 + ], + "position_mm": [ + 343.17984651688414, + -286.2937692049697, + -27.164138591258965 + ], + "normal": [ + -0.031231696951280415, + 0.010041197506571174, + 0.9994617328633335 + ], + "corners_m": [ + [ + 0.33078200750401754, + -0.29793645872522256, + -0.027131992501738318 + ], + [ + 0.3314772794701924, + -0.2736286068082837, + -0.02796698263122479 + ], + [ + 0.3552683232181285, + -0.2750549172045844, + -0.02657837934076975 + ], + [ + 0.35519177587519846, + -0.2985550940817881, + -0.026979199891303013 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.03202640475121, + "weight": 0.7554 + }, + { + "marker_id": 50, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5740660271196084, + 0.21037826809336746, + -0.026225039936072905 + ], + "position_mm": [ + 574.0660271196084, + 210.37826809336747, + -26.225039936072907 + ], + "normal": [ + -0.0007334318566108022, + 0.032086543086296826, + 0.9994848252127108 + ], + "corners_m": [ + [ + 0.5619005480316933, + 0.198041826066112, + -0.026260497260393735 + ], + [ + 0.5623758422431261, + 0.2224905011778162, + -0.026203326026318138 + ], + [ + 0.5863237331921071, + 0.22247824813977254, + -0.027030993098368806 + ], + [ + 0.5856639850115073, + 0.19850249698976904, + -0.025405343359210953 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.05967250453145, + "weight": 0.2393 + }, + { + "marker_id": 51, + "link": "Board", + "set": "A0", + "position_m": [ + 0.1667282238769894, + -0.1710758283732236, + -0.027093339422642557 + ], + "position_mm": [ + 166.7282238769894, + -171.0758283732236, + -27.093339422642558 + ], + "normal": [ + -0.03385672724685736, + 0.011723476487960238, + 0.9993579349358108 + ], + "corners_m": [ + [ + 0.1547150712521942, + -0.18328068811002252, + -0.027354083981721504 + ], + [ + 0.15466013747161345, + -0.15879627866383095, + -0.027649361987502053 + ], + [ + 0.17852599816092002, + -0.15884357820740305, + -0.02683402947872019 + ], + [ + 0.17901168862322994, + -0.18338276851163787, + -0.026535882242626468 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.305623436046485, + "weight": 0.6382 + }, + { + "marker_id": 53, + "link": "Board", + "set": "A0", + "position_m": [ + 0.48736626671852423, + 0.21231679031089312, + -0.02738275997348891 + ], + "position_mm": [ + 487.36626671852423, + 212.3167903108931, + -27.38275997348891 + ], + "normal": [ + -0.0736101020288379, + -0.01564065900121903, + 0.9971644411356192 + ], + "corners_m": [ + [ + 0.4757190794485293, + 0.2014528406166193, + -0.028389058690037657 + ], + [ + 0.47499780770641314, + 0.2247388046077821, + -0.028124575264799806 + ], + [ + 0.4991526780785909, + 0.22281249506571896, + -0.026323687792599713 + ], + [ + 0.49959550164056354, + 0.2002630209534522, + -0.026693718146518455 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.52999142170282, + "weight": 0.3227 + }, + { + "marker_id": 54, + "link": "Board", + "set": "A0", + "position_m": [ + 0.34107216634237836, + -0.3303012041396062, + -0.02722030671584772 + ], + "position_mm": [ + 341.07216634237835, + -330.30120413960617, + -27.22030671584772 + ], + "normal": [ + -0.033618003183349426, + 0.04016720801875606, + 0.9986272704377457 + ], + "corners_m": [ + [ + 0.3289755261892367, + -0.3420749965428816, + -0.027461629344782648 + ], + [ + 0.3291722918761967, + -0.31765655212894395, + -0.027823591403128747 + ], + [ + 0.35326167338584835, + -0.31829062837412114, + -0.02759247270381654 + ], + [ + 0.3528791739182314, + -0.34318263951247785, + -0.02600353341166295 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.360009517128933, + "weight": 0.5618 + }, + { + "marker_id": 55, + "link": "Arm1", + "set": "A0", + "position_m": [ + 0.2826453370101749, + -0.26174958078036853, + -0.026645233099692963 + ], + "position_mm": [ + 282.6453370101749, + -261.74958078036855, + -26.645233099692962 + ], + "normal": [ + -0.05273705322086408, + 0.016960957525328557, + 0.9984643855127753 + ], + "corners_m": [ + [ + 0.27060778008327213, + -0.2737407117657374, + -0.027397816442937227 + ], + [ + 0.27057276639875916, + -0.2491794640591713, + -0.027173708683332326 + ], + [ + 0.29463386900565197, + -0.24984757884801367, + -0.02653901999282952 + ], + [ + 0.29476693255301645, + -0.27423056844855176, + -0.025470387279672782 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.32216569858272, + "weight": 0.7263 + }, + { + "marker_id": 58, + "link": "Board", + "set": "A0", + "position_m": [ + 0.0486200712606465, + -0.21650167659710656, + -0.027861961281782838 + ], + "position_mm": [ + 48.6200712606465, + -216.50167659710655, + -27.861961281782836 + ], + "normal": [ + -0.0016154290322130593, + -0.009401360428406058, + 0.9999545013705059 + ], + "corners_m": [ + [ + 0.036545569868233714, + -0.22867236388887668, + -0.027848431959453253 + ], + [ + 0.03644322513347829, + -0.20407942519015682, + -0.02791315990746717 + ], + [ + 0.06062762406037025, + -0.2047121261474928, + -0.02757869793040356 + ], + [ + 0.06086386598050376, + -0.22854279116190007, + -0.02810755532980736 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.23648685677286, + "weight": 0.4199 + }, + { + "marker_id": 62, + "link": "Board", + "set": "A0", + "position_m": [ + 0.4041518149215487, + -0.17491948394094883, + -0.0269608631008516 + ], + "position_mm": [ + 404.15181492154875, + -174.91948394094882, + -26.9608631008516 + ], + "normal": [ + 0.01613817571808002, + -0.015024920232006186, + 0.999756875973611 + ], + "corners_m": [ + [ + 0.3920737422133541, + -0.18677215499002264, + -0.027036023221026412 + ], + [ + 0.3919926434564965, + -0.16292347334237547, + -0.02649309195371941 + ], + [ + 0.41632975851701276, + -0.1632125614407277, + -0.02707386641859979 + ], + [ + 0.41621111549933154, + -0.1867697459906695, + -0.027240470810060778 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.974267674074415, + "weight": 0.6083 + }, + { + "marker_id": 64, + "link": "Board", + "set": "A0", + "position_m": [ + -0.02258649631128378, + -0.18667977698072646, + -0.026966425537488896 + ], + "position_mm": [ + -22.58649631128378, + -186.67977698072647, + -26.966425537488895 + ], + "normal": [ + -0.0064752537296278645, + 0.011327986548649915, + 0.9999148702814108 + ], + "corners_m": [ + [ + -0.03439927572660453, + -0.1990124815609223, + -0.026428394085164827 + ], + [ + -0.03486010726531316, + -0.173155504999449, + -0.02763693239629834 + ], + [ + -0.009893771966548847, + -0.1759502130115784, + -0.026504850564630176 + ], + [ + -0.011192830286668586, + -0.19860090835095617, + -0.027295525103862232 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.241261095246575, + "weight": 0.3785 + }, + { + "marker_id": 66, + "link": "Board", + "set": "A0", + "position_m": [ + 0.20851422290342447, + -0.36321289901385745, + -0.027644769038368936 + ], + "position_mm": [ + 208.51422290342447, + -363.21289901385745, + -27.644769038368935 + ], + "normal": [ + -0.049605765588381076, + 0.03216066169458332, + 0.9982509503425264 + ], + "corners_m": [ + [ + 0.1958934982893338, + -0.3745036677271824, + -0.02842170503543501 + ], + [ + 0.1967026359183424, + -0.35091747750483704, + -0.02809451595895762 + ], + [ + 0.2207218997661436, + -0.3513022231279206, + -0.027928500945369965 + ], + [ + 0.22073885763987816, + -0.37612822769548987, + -0.026134354213713146 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.379817245584718, + "weight": 0.434 + }, + { + "marker_id": 68, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5743878627677407, + 0.1690555009865223, + -0.026110414970654056 + ], + "position_mm": [ + 574.3878627677407, + 169.0555009865223, + -26.110414970654055 + ], + "normal": [ + -0.0004423706340999529, + 0.05167449160127389, + 0.9986638830086788 + ], + "corners_m": [ + [ + 0.5623261370914318, + 0.15646189643939457, + -0.025877938606102623 + ], + [ + 0.5622386851446903, + 0.1804941935809788, + -0.026313717512898946 + ], + [ + 0.5870770086431448, + 0.18232982079332896, + -0.027163607228015058 + ], + [ + 0.5859096201916958, + 0.15693609313238688, + -0.025086396535599607 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.515941202978375, + "weight": 0.2734 + }, + { + "marker_id": 73, + "link": "Board", + "set": "A0", + "position_m": [ + 0.2219673828728824, + 0.33721762949995815, + -0.030290964230759415 + ], + "position_mm": [ + 221.96738287288238, + 337.21762949995815, + -30.290964230759414 + ], + "normal": [ + -0.05171501701966444, + 0.14619892227790302, + 0.9879025418225401 + ], + "corners_m": [ + [ + 0.2099520001525355, + 0.32529642222307453, + -0.02986365874714666 + ], + [ + 0.21016863328744437, + 0.35134351983698553, + -0.03227248290068654 + ], + [ + 0.23370636878440182, + 0.3515916258153055, + -0.03240977794180018 + ], + [ + 0.23404252926714783, + 0.32063895012446697, + -0.02661793733340428 + ] + ], + "num_cameras": 2, + "edge_length_mm": 26.485158811151774, + "weight": 0.1671 + }, + { + "marker_id": 76, + "link": "Board", + "set": "A0", + "position_m": [ + 0.686208289306693, + 0.16501625935789133, + -0.027128806930602364 + ], + "position_mm": [ + 686.208289306693, + 165.01625935789133, + -27.128806930602366 + ], + "normal": [ + -0.045478091343535296, + -0.03113769096128405, + 0.9984799384110572 + ], + "corners_m": [ + [ + 0.6742853696315547, + 0.15349808896394945, + -0.02787408437989165 + ], + [ + 0.6741894125974176, + 0.17675356164091763, + -0.027468507107200484 + ], + [ + 0.6980249440231349, + 0.1758366833126496, + -0.026084926594691474 + ], + [ + 0.6983334309746645, + 0.15397670351404869, + -0.027087709640625842 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.27581921989986, + "weight": 0.3625 + }, + { + "marker_id": 79, + "link": "Board", + "set": "A0", + "position_m": [ + 0.31150669317326424, + -0.15794671443086494, + -0.027044415501141818 + ], + "position_mm": [ + 311.50669317326424, + -157.94671443086494, + -27.044415501141817 + ], + "normal": [ + 0.0502328186860131, + -0.04898872129715993, + 0.9975353472997973 + ], + "corners_m": [ + [ + 0.29955065837151285, + -0.16986513800699882, + -0.027497571974923245 + ], + [ + 0.2996622031696467, + -0.1478686907804324, + -0.025482520169204236 + ], + [ + 0.3234029566012382, + -0.1452779894777899, + -0.02746348600166971 + ], + [ + 0.32341095455065916, + -0.1687750394582387, + -0.02773408385877007 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.359376815179566, + "weight": 0.4199 + }, + { + "marker_id": 82, + "link": "Board", + "set": "A0", + "position_m": [ + 0.21936556203940893, + 0.30045717438883596, + -0.02979075821718188 + ], + "position_mm": [ + 219.36556203940893, + 300.45717438883594, + -29.79075821718188 + ], + "normal": [ + 0.00751346876857735, + 0.12320459480667215, + 0.9923528483385269 + ], + "corners_m": [ + [ + 0.20811679754844384, + 0.2873804354592832, + -0.02783096103711549 + ], + [ + 0.2072783123834849, + 0.3147267689582892, + -0.031710673693245435 + ], + [ + 0.23114889626386448, + 0.3128732966523306, + -0.03116854238480876 + ], + [ + 0.2309182419618425, + 0.28684819648544074, + -0.028452855753557837 + ] + ], + "num_cameras": 2, + "edge_length_mm": 25.141256482077612, + "weight": 0.2806 + }, + { + "marker_id": 85, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5039058359321804, + -0.31350530327354253, + -0.027058596575046084 + ], + "position_mm": [ + 503.9058359321804, + -313.50530327354255, + -27.058596575046085 + ], + "normal": [ + 0.005146604003328235, + -0.008664429096419403, + 0.9999492187784669 + ], + "corners_m": [ + [ + 0.49163227595981807, + -0.32556424644931903, + -0.027218601620592996 + ], + [ + 0.4918106184971616, + -0.3017381758701238, + -0.026773940193895097 + ], + [ + 0.5159991489357265, + -0.30145166269155355, + -0.02713689184423611 + ], + [ + 0.5161813003360154, + -0.3252671280831739, + -0.027104952641460133 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.097776402534436, + "weight": 0.5983 + }, + { + "marker_id": 90, + "link": "Board", + "set": "A0", + "position_m": [ + 0.6449321855731515, + 0.31619504062885767, + -0.028158497228115746 + ], + "position_mm": [ + 644.9321855731515, + 316.19504062885767, + -28.158497228115746 + ], + "normal": [ + -0.023838539701572174, + -0.04568594842532903, + 0.9986713764504191 + ], + "corners_m": [ + [ + 0.6335210704367185, + 0.3054279430148531, + -0.02959953659550744 + ], + [ + 0.6326985979465948, + 0.3274870536979496, + -0.027270126329104766 + ], + [ + 0.6565786612184072, + 0.32776919549044503, + -0.0279721253408548 + ], + [ + 0.6569304126908855, + 0.30409597031218294, + -0.027792200646995977 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.320582329391257, + "weight": 0.2879 + }, + { + "marker_id": 91, + "link": "Board", + "set": "A0", + "position_m": [ + 0.7254858569235172, + 0.32785139270449304, + -0.027507052309440182 + ], + "position_mm": [ + 725.4858569235172, + 327.85139270449304, + -27.507052309440184 + ], + "normal": [ + -0.02707754916964226, + 0.036937602925204094, + 0.9989506593526558 + ], + "corners_m": [ + [ + 0.712981887620821, + 0.31507984187567245, + -0.02696637717523818 + ], + [ + 0.7145350271726675, + 0.34079524585325555, + -0.028720159425698576 + ], + [ + 0.7371304273296406, + 0.3397733353476387, + -0.027163294474724535 + ], + [ + 0.7372960855709393, + 0.3157571477414055, + -0.027178378162099438 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.208805399117534, + "weight": 0.2091 + }, + { + "marker_id": 92, + "link": "Board", + "set": "A0", + "position_m": [ + 0.6447019342433877, + -0.18693491730925765, + -0.025550505282617524 + ], + "position_mm": [ + 644.7019342433878, + -186.93491730925766, + -25.550505282617525 + ], + "normal": [ + -0.05882929238544899, + -0.018501496601004083, + 0.9980965930113931 + ], + "corners_m": [ + [ + 0.6332131584444548, + -0.1987205238441994, + -0.026827893418331167 + ], + [ + 0.6326595257710306, + -0.17483124685681742, + -0.025655272067663493 + ], + [ + 0.6562716632314788, + -0.175263633568773, + -0.025037015685470912 + ], + [ + 0.6566633895265865, + -0.19892426496724086, + -0.02468183995900453 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.69106961353562, + "weight": 0.5325 + }, + { + "marker_id": 95, + "link": "Board", + "set": "A0", + "position_m": [ + 0.1847691901969211, + -0.273260218116302, + -0.027609211131850237 + ], + "position_mm": [ + 184.7691901969211, + -273.26021811630204, + -27.609211131850238 + ], + "normal": [ + -0.03696538236094691, + 0.018347452504005598, + 0.9991481028824116 + ], + "corners_m": [ + [ + 0.17241439069996298, + -0.2849834186192174, + -0.027433068143709893 + ], + [ + 0.17292333255677395, + -0.2605587441293417, + -0.02870531019645584 + ], + [ + 0.19690188998049687, + -0.2615489566026629, + -0.026949579723805895 + ], + [ + 0.1968371475504506, + -0.285949753113986, + -0.02734888646342933 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.343093644665778, + "weight": 0.6542 + }, + { + "marker_id": 96, + "link": "Board", + "set": "A0", + "position_m": [ + 0.369197792626815, + -0.1857436626700597, + -0.02760751576830979 + ], + "position_mm": [ + 369.197792626815, + -185.7436626700597, + -27.60751576830979 + ], + "normal": [ + -0.0483556561154326, + 0.0215178711604489, + 0.9985983735928916 + ], + "corners_m": [ + [ + 0.35697701134548326, + -0.19775170294754674, + -0.028165720752956123 + ], + [ + 0.35717999133113276, + -0.17348771650939623, + -0.028227263364491096 + ], + [ + 0.38137949240651914, + -0.17416694932659815, + -0.027501518607480416 + ], + [ + 0.38125467542412506, + -0.19756828189669767, + -0.026535560348311536 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.059859393085066, + "weight": 0.5887 + }, + { + "marker_id": 103, + "link": "Board", + "set": "A0", + "position_m": [ + 0.10462948511641995, + -0.18631859957962704, + -0.027250305898322984 + ], + "position_mm": [ + 104.62948511641996, + -186.31859957962703, + -27.250305898322985 + ], + "normal": [ + -0.017208311057066425, + 0.02454883864207025, + 0.9995505132567784 + ], + "corners_m": [ + [ + 0.09257843286587261, + -0.1983913245803356, + -0.02671215220655653 + ], + [ + 0.09250088113413102, + -0.17362678743571425, + -0.028214358137968725 + ], + [ + 0.11681481922655008, + -0.17440673139921095, + -0.026882995513005527 + ], + [ + 0.11662380723912608, + -0.19884955490324735, + -0.027191717735761168 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.41826695860285, + "weight": 0.5666 + }, + { + "marker_id": 105, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5243032524385538, + -0.2671503843697438, + -0.027083400996527653 + ], + "position_mm": [ + 524.3032524385538, + -267.1503843697438, + -27.083400996527654 + ], + "normal": [ + -0.01599864651832562, + 0.0193841406085693, + 0.9996840993045999 + ], + "corners_m": [ + [ + 0.5126190358135955, + -0.2791030083767478, + -0.02681629446106809 + ], + [ + 0.512098514662561, + -0.2552559596265507, + -0.027729813359457452 + ], + [ + 0.5360805511016133, + -0.2551047029136219, + -0.026909587234653514 + ], + [ + 0.5364149081764455, + -0.2791378665620548, + -0.026877908930931543 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.92455978321324, + "weight": 0.7573 + }, + { + "marker_id": 118, + "link": "unknown", + "set": "", + "position_m": [ + 0.32298816818524, + -0.17421642921561398, + 0.04715543350989927 + ], + "position_mm": [ + 322.98816818524, + -174.21642921561397, + 47.155433509899275 + ], + "normal": [ + 0.023353254828965702, + -0.9946235446357008, + 0.10088919637507068 + ], + "corners_m": [ + [ + 0.33476004555214456, + -0.1752484154969771, + 0.03512413032791927 + ], + [ + 0.310777226339317, + -0.1756396368867708, + 0.03509894287494888 + ], + [ + 0.3111479410203566, + -0.17333631323919282, + 0.05941960341544526 + ], + [ + 0.3352674598291419, + -0.17264135123951513, + 0.05897905742128367 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.138550445270795, + "weight": 0.5186 + }, + { + "marker_id": 122, + "link": "Ellbow", + "set": "", + "position_m": [ + 0.35995324620045366, + -0.17378489750800846, + 0.0460683598840121 + ], + "position_mm": [ + 359.95324620045363, + -173.78489750800847, + 46.068359884012104 + ], + "normal": [ + 0.002041765658866945, + -0.9936087740562163, + 0.11286024681657081 + ], + "corners_m": [ + [ + 0.37237083657539377, + -0.17476777610542663, + 0.03475408390097215 + ], + [ + 0.3482490618411883, + -0.17553383260537517, + 0.03340429571107772 + ], + [ + 0.3473677923090367, + -0.1722990949728958, + 0.056891546138556966 + ], + [ + 0.3718252940761956, + -0.17253888634833622, + 0.05922351378544159 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.260840521667582, + "weight": 0.5297 + }, + { + "marker_id": 143, + "link": "Arm2", + "set": "", + "position_m": [ + 0.34007312232696796, + -0.1382191635210904, + 0.22965654088534693 + ], + "position_mm": [ + 340.07312232696796, + -138.2191635210904, + 229.6565408853469 + ], + "normal": [ + -0.7269504938098722, + -0.6815068127754624, + 0.08421071006833851 + ], + "corners_m": [ + [ + 0.3480389309077827, + -0.14801535604441635, + 0.2184936812458148 + ], + [ + 0.3317421366371119, + -0.13105442197717015, + 0.21635861171371373 + ], + [ + 0.33230494277749395, + -0.12844443628023183, + 0.24105791244094704 + ], + [ + 0.3482064789854832, + -0.1453624397825433, + 0.24271595814091218 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.02655536545685, + "weight": 0.5826 + }, + { + "marker_id": 144, + "link": "Arm2", + "set": "", + "position_m": [ + 0.3629310777112173, + -0.15715209973987782, + 0.15816108361334208 + ], + "position_mm": [ + 362.9310777112173, + -157.15209973987783, + 158.16108361334207 + ], + "normal": [ + -0.05456292778568429, + -0.991700710789519, + 0.1164155794170905 + ], + "corners_m": [ + [ + 0.37472552110629315, + -0.15913817974105535, + 0.145921532557608 + ], + [ + 0.3504507744668327, + -0.1579658184282881, + 0.14621934022997046 + ], + [ + 0.3511978767410401, + -0.1549578281613012, + 0.17051132839421881 + ], + [ + 0.3753501385307032, + -0.15654657262886662, + 0.1699921332715711 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.30539376391887, + "weight": 0.6648 + }, + { + "marker_id": 146, + "link": "Arm2", + "set": "", + "position_m": [ + 0.3373055076322522, + -0.14770715597985262, + 0.16001776498795617 + ], + "position_mm": [ + 337.3055076322522, + -147.70715597985262, + 160.01776498795616 + ], + "normal": [ + -0.6883325810176156, + -0.7230290029066275, + 0.05854330760621411 + ], + "corners_m": [ + [ + 0.3456458155727731, + -0.1563892069210023, + 0.14797091772107682 + ], + [ + 0.3293408254775714, + -0.14141274771328408, + 0.1469862951970766 + ], + [ + 0.32873382652997896, + -0.1383524027451605, + 0.1720473710637107 + ], + [ + 0.3455015629486854, + -0.15467426653996358, + 0.17306647596996053 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.998093168227342, + "weight": 0.4918 + }, + { + "marker_id": 147, + "link": "FingerA", + "set": "", + "position_m": [ + 0.383247310658375, + -0.14404858279642158, + 0.22650484413452593 + ], + "position_mm": [ + 383.247310658375, + -144.04858279642158, + 226.50484413452594 + ], + "normal": [ + 0.4377766576413942, + -0.8960687201735422, + 0.07356933295116713 + ], + "corners_m": [ + [ + 0.3935197815892526, + -0.13974166604521326, + 0.2139115007407279 + ], + [ + 0.3723849790592809, + -0.15058476908381274, + 0.21543348549040017 + ], + [ + 0.37263145728916863, + -0.1478807921526146, + 0.23913071574017944 + ], + [ + 0.39445302469579774, + -0.1379871039040457, + 0.2375436745667962 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.845687610972416, + "weight": 0.7037 + }, + { + "marker_id": 148, + "link": "Arm2", + "set": "", + "position_m": [ + 0.3672093311825495, + -0.14290732720877108, + 0.2643447735325815 + ], + "position_mm": [ + 367.2093311825495, + -142.90732720877108, + 264.3447735325815 + ], + "normal": [ + -0.04936229432134974, + -0.9958554331829946, + 0.07638926691127913 + ], + "corners_m": [ + [ + 0.3787507011018173, + -0.14411633223682072, + 0.25180607125574883 + ], + [ + 0.3547204444979868, + -0.1435244086056783, + 0.2524124020244396 + ], + [ + 0.35575932210553307, + -0.14104782797773505, + 0.2769859677459469 + ], + [ + 0.3796068570248607, + -0.14294074001485027, + 0.2761746531041907 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.278328806723824, + "weight": 0.7853 + }, + { + "marker_id": 178, + "link": "FingerB", + "set": "", + "position_m": [ + 0.2877290003670202, + -0.12140462316811663, + 0.315332767953462 + ], + "position_mm": [ + 287.7290003670202, + -121.40462316811663, + 315.332767953462 + ], + "normal": [ + -0.6717906682991077, + -0.7214974393473287, + -0.16774606702240746 + ], + "corners_m": [ + [ + 0.2795480733628238, + -0.1168579938814506, + 0.3287335215114899 + ], + [ + 0.29525200710959515, + -0.13083364767316769, + 0.3255688547392651 + ], + [ + 0.29674089555706734, + -0.12657109624422969, + 0.30163726012120756 + ], + [ + 0.2793750254385946, + -0.11135575487361854, + 0.3053914354418854 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.246761167124166, + "weight": 0.4355 + }, + { + "marker_id": 179, + "link": "FingerB", + "set": "", + "position_m": [ + 0.32915099003191667, + -0.13963875539016746, + 0.3114028553563564 + ], + "position_mm": [ + 329.15099003191665, + -139.63875539016746, + 311.40285535635644 + ], + "normal": [ + -0.6125139555017056, + -0.17201383625354036, + 0.7715166196868314 + ], + "corners_m": [ + [ + 0.3158094259516793, + -0.13583766696306043, + 0.3018083800379275 + ], + [ + 0.33070646775437573, + -0.12403473821343082, + 0.3159752716513444 + ], + [ + 0.34273487462248836, + -0.1440237073429093, + 0.3213504202643478 + ], + [ + 0.32735319179912326, + -0.15465890904126925, + 0.3064773494718061 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.52667075209077, + "weight": 0.4979 + }, + { + "marker_id": 198, + "link": "Arm1", + "set": "", + "position_m": [ + 0.26853175438200816, + -0.053978358635442654, + 0.08439827859595683 + ], + "position_mm": [ + 268.53175438200816, + -53.97835863544265, + 84.39827859595684 + ], + "normal": [ + 0.008635583988426378, + 0.013194422906982695, + 0.9998756592163501 + ], + "corners_m": [ + [ + 0.2564369442347636, + -0.041549903891408224, + 0.08432325606385158 + ], + [ + 0.2798400193816042, + -0.0412622704363064, + 0.08414829402563896 + ], + [ + 0.28161734477109546, + -0.06638731584787211, + 0.0844347377465027 + ], + [ + 0.2562327091405695, + -0.06671394436618389, + 0.08468682654783409 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.78760988721936, + "weight": 0.4918 + }, + { + "marker_id": 200, + "link": "unknown", + "set": "", + "position_m": [ + 0.1996595055523626, + -0.02882206145297598, + 0.11004243702297827 + ], + "position_mm": [ + 199.6595055523626, + -28.82206145297598, + 110.04243702297826 + ], + "normal": [ + -0.1513393766243665, + -0.016950905622498128, + 0.9883365114582813 + ], + "corners_m": [ + [ + 0.18665785620495545, + -0.016207523420330838, + 0.10762694221032588 + ], + [ + 0.21104837997915116, + -0.018702807513759603, + 0.11268111143348455 + ], + [ + 0.21248846586767461, + -0.040076819277184234, + 0.11107638953905809 + ], + [ + 0.18844332015766904, + -0.04030109560062925, + 0.10878530490904452 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.714580941417054, + "weight": 0.5512 + }, + { + "marker_id": 204, + "link": "unknown", + "set": "", + "position_m": [ + 0.1984765740223956, + 0.11542831824770719, + 0.12090915141576847 + ], + "position_mm": [ + 198.4765740223956, + 115.4283182477072, + 120.90915141576846 + ], + "normal": [ + 0.03546403507258911, + 0.044277915694797776, + 0.9983895874848128 + ], + "corners_m": [ + [ + 0.18632741812774353, + 0.12604429359606398, + 0.12132533001126279 + ], + [ + 0.21023500632947217, + 0.12872967381799474, + 0.11950266734537837 + ], + [ + 0.2109972305473541, + 0.10326132433663346, + 0.12139195103081395 + ], + [ + 0.18634664108501267, + 0.1036779812401366, + 0.1214166572756187 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.174301619640744, + "weight": 0.319 + }, + { + "marker_id": 208, + "link": "Board", + "set": "rail", + "position_m": [ + 0.6263548460409031, + -0.09861748413242921, + -0.006792883816376907 + ], + "position_mm": [ + 626.3548460409031, + -98.61748413242921, + -6.792883816376906 + ], + "normal": [ + -0.0008430903222964405, + 0.015370842068947767, + 0.999881506186008 + ], + "corners_m": [ + [ + 0.614230807767895, + -0.08651647656308285, + -0.007143804201318833 + ], + [ + 0.6378805927521303, + -0.08673801245551091, + -0.006804726675489914 + ], + [ + 0.6389071304923027, + -0.11022444812110638, + -0.006759257810994225 + ], + [ + 0.614400853151284, + -0.11099099939001673, + -0.006463746577704654 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.04168986172767, + "weight": 0.5135 + }, + { + "marker_id": 210, + "link": "Board", + "set": "rail", + "position_m": [ + 0.12990350318916816, + -0.007860989622206821, + -0.005665807819902785 + ], + "position_mm": [ + 129.90350318916816, + -7.860989622206821, + -5.665807819902785 + ], + "normal": [ + 0.06218884802716192, + 0.022532660923192397, + 0.9978100151696089 + ], + "corners_m": [ + [ + 0.11812523787255753, + 0.002655082362769257, + -0.005006889677640234 + ], + [ + 0.14140445655343198, + 0.004617715410766273, + -0.006818226965514111 + ], + [ + 0.1417852165765155, + -0.01898482631912202, + -0.006002346836519512 + ], + [ + 0.1182991017541676, + -0.019731929943240793, + -0.004835767799937283 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.24172619372823, + "weight": 0.3847 + }, + { + "marker_id": 214, + "link": "unknown", + "set": "", + "position_m": [ + 0.5316233749448692, + -0.00858611878564643, + -0.006826845819367963 + ], + "position_mm": [ + 531.6233749448692, + -8.58611878564643, + -6.826845819367963 + ], + "normal": [ + -0.029216114754592536, + 0.041964563867683435, + 0.9986918413695196 + ], + "corners_m": [ + [ + 0.5200639817736521, + 0.004014920000578812, + -0.007955232702632127 + ], + [ + 0.5437436861591388, + 0.0033437727637393427, + -0.00670586095180886 + ], + [ + 0.543424610151461, + -0.02088612093561667, + -0.006227672713336715 + ], + [ + 0.5192612216952248, + -0.020817046971287202, + -0.0064186169096941475 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.253875742237295, + "weight": 0.3994 + }, + { + "marker_id": 217, + "link": "Board", + "set": "rail", + "position_m": [ + 0.7300104243586413, + -0.008511771670393872, + -0.004995991947031072 + ], + "position_mm": [ + 730.0104243586413, + -8.511771670393872, + -4.995991947031071 + ], + "normal": [ + -0.08513421891679325, + -0.014380586401670947, + 0.996265709288527 + ], + "corners_m": [ + [ + 0.718762967749027, + 0.003958668817858879, + -0.0060277521587317265 + ], + [ + 0.7412507299735428, + 0.0022088131577019253, + -0.0036254947775964112 + ], + [ + 0.7416642532933401, + -0.02078566480972951, + -0.004424609338446484 + ], + [ + 0.7183637464186549, + -0.01942890384740678, + -0.005906111513349667 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.118405458871074, + "weight": 0.5425 + }, + { + "marker_id": 229, + "link": "Arm1", + "set": "", + "position_m": [ + 0.27117371734787965, + -0.142109938467787, + 0.07909951844444263 + ], + "position_mm": [ + 271.17371734787963, + -142.109938467787, + 79.09951844444262 + ], + "normal": [ + 0.010621701517588964, + -0.04516491645295307, + 0.9989230750056127 + ], + "corners_m": [ + [ + 0.25888497580027847, + -0.13051133186568323, + 0.07949967513799078 + ], + [ + 0.2830619059411058, + -0.13034159839295315, + 0.07976875295894265 + ], + [ + 0.28374030385188437, + -0.15328491647851367, + 0.07820315761647183 + ], + [ + 0.2590076837982499, + -0.15430190713399794, + 0.07892648806436525 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.936895358523532, + "weight": 0.5405 + }, + { + "marker_id": 243, + "link": "Arm1", + "set": "", + "position_m": [ + 0.270301287205652, + -0.176611833712784, + 0.04373112532446407 + ], + "position_mm": [ + 270.301287205652, + -176.611833712784, + 43.73112532446407 + ], + "normal": [ + 0.020442155933672386, + -0.9996039038483082, + -0.019343052292899343 + ], + "corners_m": [ + [ + 0.2583375240724305, + -0.17731625327954492, + 0.05633103870321022 + ], + [ + 0.2826845167646905, + -0.17635561753528006, + 0.05501022626707863 + ], + [ + 0.2822567871432804, + -0.17635060413357947, + 0.03141262678354164 + ], + [ + 0.25792632084220674, + -0.17642485990273152, + 0.03217060954402579 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.13148332838305, + "weight": 0.4708 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam0.jpg b/data/homing/20260625_172504/cam0.jpg new file mode 100644 index 0000000..8e61af0 Binary files /dev/null and b/data/homing/20260625_172504/cam0.jpg differ diff --git a/data/homing/20260625_172504/cam0_aruco_detection.json b/data/homing/20260625_172504/cam0_aruco_detection.json new file mode 100644 index 0000000..8c4bc99 --- /dev/null +++ b/data/homing/20260625_172504/cam0_aruco_detection.json @@ -0,0 +1,2645 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:25:09Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam0", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam0_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_172504/cam0.jpg", + "image_sha256": "38bce066381e4c8b923f17646421eee30b462a45466be3ceb450d49a042866bc", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 36, + "num_rejected_candidates": 26 + }, + "detections": [ + { + "observation_id": "c667b25d-f2b1-4b3d-a359-a5172956a33b", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 803.0, + 214.0 + ], + [ + 757.0, + 214.0 + ], + [ + 759.0, + 166.0 + ], + [ + 805.0, + 167.0 + ] + ], + "center_px": [ + 781.0, + 190.25 + ], + "quality": { + "area_px": 2186.0, + "perimeter_px": 187.09505081176758, + "sharpness": { + "laplacian_var": 3418.3223930454024 + }, + "contrast": { + "p05": 84.0, + "p95": 251.0, + "dynamic_range": 167.0, + "mean_gray": 138.14713715046605, + "std_gray": 62.88174221336519 + }, + "geometry": { + "distance_to_center_norm": 0.4027950167655945, + "distance_to_border_px": 166.0 + }, + "edge_ratio": 1.0443836709727412, + "edge_lengths_px": [ + 46.0, + 48.041648864746094, + 46.010868072509766, + 47.04253387451172 + ] + }, + "confidence": 0.9575025230608957 + }, + { + "observation_id": "94172787-546f-47fa-8fe7-1ecc5a93e7da", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 650.0, + 928.0 + ], + [ + 652.0, + 892.0 + ], + [ + 702.0, + 892.0 + ], + [ + 701.0, + 930.0 + ] + ], + "center_px": [ + 676.25, + 910.5 + ], + "quality": { + "area_px": 1870.0, + "perimeter_px": 175.10786819458008, + "sharpness": { + "laplacian_var": 2559.9819822756886 + }, + "contrast": { + "p05": 7.0, + "p95": 172.0, + "dynamic_range": 165.0, + "mean_gray": 82.13986013986013, + "std_gray": 69.10939058672639 + }, + "geometry": { + "distance_to_center_norm": 0.5400293469429016, + "distance_to_border_px": 30.0 + }, + "edge_ratio": 1.4155727582742472, + "edge_lengths_px": [ + 36.055511474609375, + 50.0, + 38.01315689086914, + 51.03919982910156 + ] + }, + "confidence": 0.42385670146087856 + }, + { + "observation_id": "0817b641-2ecb-40d7-8c20-4b656477cd41", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 798.0, + 410.0 + ], + [ + 754.0, + 410.0 + ], + [ + 754.0, + 367.0 + ], + [ + 799.0, + 367.0 + ] + ], + "center_px": [ + 776.25, + 388.5 + ], + "quality": { + "area_px": 1913.5, + "perimeter_px": 175.01162719726562, + "sharpness": { + "laplacian_var": 3923.123238824356 + }, + "contrast": { + "p05": 52.85, + "p95": 251.0, + "dynamic_range": 198.15, + "mean_gray": 137.8341158059468, + "std_gray": 80.48104021784783 + }, + "geometry": { + "distance_to_center_norm": 0.20515358448028564, + "distance_to_border_px": 367.0 + }, + "edge_ratio": 1.0465116279069768, + "edge_lengths_px": [ + 44.0, + 43.0, + 45.0, + 43.011627197265625 + ] + }, + "confidence": 0.9555555555555555 + }, + { + "observation_id": "e58b6790-fbbb-4fcb-969b-01e0052e89c1", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 451.0, + 940.0 + ], + [ + 460.0, + 903.0 + ], + [ + 509.0, + 903.0 + ], + [ + 502.0, + 938.0 + ] + ], + "center_px": [ + 480.5, + 921.0 + ], + "quality": { + "area_px": 1792.0, + "perimeter_px": 173.8112030029297, + "sharpness": { + "laplacian_var": 2171.978517210261 + }, + "contrast": { + "p05": 7.0, + "p95": 163.8499999999999, + "dynamic_range": 156.8499999999999, + "mean_gray": 54.33496732026144, + "std_gray": 60.18297714529273 + }, + "geometry": { + "distance_to_center_norm": 0.586197018623352, + "distance_to_border_px": 20.0 + }, + "edge_ratio": 1.4299443118128083, + "edge_lengths_px": [ + 38.07886505126953, + 49.0, + 35.693138122558594, + 51.03919982910156 + ] + }, + "confidence": 0.2797311732321247 + }, + { + "observation_id": "96b6617a-5f43-4b97-bc56-9a7b0b7850bb", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1060.0, + 860.0 + ], + [ + 1050.0, + 827.0 + ], + [ + 1099.0, + 827.0 + ], + [ + 1111.0, + 860.0 + ] + ], + "center_px": [ + 1080.0, + 843.5 + ], + "quality": { + "area_px": 1650.0, + "perimeter_px": 169.5959815979004, + "sharpness": { + "laplacian_var": 2958.162899511713 + }, + "contrast": { + "p05": 5.0, + "p95": 163.0, + "dynamic_range": 158.0, + "mean_gray": 98.53564899451554, + "std_gray": 62.0568244467167 + }, + "geometry": { + "distance_to_center_norm": 0.7134119272232056, + "distance_to_border_px": 100.0 + }, + "edge_ratio": 1.47903767781682, + "edge_lengths_px": [ + 34.48188018798828, + 49.0, + 35.11410140991211, + 51.0 + ] + }, + "confidence": 0.6761152978036918 + }, + { + "observation_id": "f0437940-d6c8-4dbf-abfc-b3b60cbf350d", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 831.0, + 279.0 + ], + [ + 792.0, + 284.0 + ], + [ + 792.0, + 240.0 + ], + [ + 833.0, + 235.0 + ] + ], + "center_px": [ + 812.0, + 259.5 + ], + "quality": { + "area_px": 1755.0, + "perimeter_px": 168.66838836669922, + "sharpness": { + "laplacian_var": 3714.5398758069864 + }, + "contrast": { + "p05": 29.900000000000006, + "p95": 251.0, + "dynamic_range": 221.1, + "mean_gray": 97.03753127606339, + "std_gray": 78.44116865541442 + }, + "geometry": { + "distance_to_center_norm": 0.34956279397010803, + "distance_to_border_px": 235.0 + }, + "edge_ratio": 1.1202013836027187, + "edge_lengths_px": [ + 39.31920623779297, + 44.0, + 41.30375289916992, + 44.04542922973633 + ] + }, + "confidence": 0.8926966299433279 + }, + { + "observation_id": "87cb3310-e8d4-4669-849d-f25e3cf554e7", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 730.0, + 886.0 + ], + [ + 728.0, + 851.0 + ], + [ + 777.0, + 852.0 + ], + [ + 779.0, + 885.0 + ] + ], + "center_px": [ + 753.5, + 868.5 + ], + "quality": { + "area_px": 1666.0, + "perimeter_px": 166.13805389404297, + "sharpness": { + "laplacian_var": 1759.6769308020353 + }, + "contrast": { + "p05": 10.0, + "p95": 167.0, + "dynamic_range": 157.0, + "mean_gray": 45.85013380909902, + "std_gray": 53.1624580173282 + }, + "geometry": { + "distance_to_center_norm": 0.5059250593185425, + "distance_to_border_px": 74.0 + }, + "edge_ratio": 1.4824376271039765, + "edge_lengths_px": [ + 35.05709457397461, + 49.01020431518555, + 33.060550689697266, + 49.01020431518555 + ] + }, + "confidence": 0.6745646371332027 + }, + { + "observation_id": "efccc2d2-5af3-4cfd-9208-027220726a35", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 798.0, + 598.0 + ], + [ + 755.0, + 601.0 + ], + [ + 753.0, + 563.0 + ], + [ + 796.0, + 559.0 + ] + ], + "center_px": [ + 775.5, + 580.25 + ], + "quality": { + "area_px": 1662.5, + "perimeter_px": 163.39401245117188, + "sharpness": { + "laplacian_var": 2333.63356288185 + }, + "contrast": { + "p05": 34.300000000000004, + "p95": 223.0, + "dynamic_range": 188.7, + "mean_gray": 94.41915085817524, + "std_gray": 73.36844142361393 + }, + "geometry": { + "distance_to_center_norm": 0.21069198846817017, + "distance_to_border_px": 359.0 + }, + "edge_ratio": 1.1348935265847708, + "edge_lengths_px": [ + 43.104522705078125, + 38.05259704589844, + 43.185646057128906, + 39.051246643066406 + ] + }, + "confidence": 0.8811399277333926 + }, + { + "observation_id": "fae996c5-2822-420b-9d31-500f7bfe6280", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 732.0, + 599.0 + ], + [ + 690.0, + 600.0 + ], + [ + 689.0, + 561.0 + ], + [ + 732.0, + 561.0 + ] + ], + "center_px": [ + 710.75, + 580.25 + ], + "quality": { + "area_px": 1636.5, + "perimeter_px": 162.02471923828125, + "sharpness": { + "laplacian_var": 2144.4680598053515 + }, + "contrast": { + "p05": 32.0, + "p95": 218.0, + "dynamic_range": 186.0, + "mean_gray": 68.12388591800357, + "std_gray": 56.51202906871175 + }, + "geometry": { + "distance_to_center_norm": 0.15337669849395752, + "distance_to_border_px": 360.0 + }, + "edge_ratio": 1.131578947368421, + "edge_lengths_px": [ + 42.01190185546875, + 39.0128173828125, + 43.0, + 38.0 + ] + }, + "confidence": 0.8837209302325582 + }, + { + "observation_id": "61090e29-997e-4c6a-b41e-9cf7b9536af6", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1080.0, + 797.0 + ], + [ + 1069.0, + 770.0 + ], + [ + 1116.0, + 769.0 + ], + [ + 1128.0, + 798.0 + ] + ], + "center_px": [ + 1098.25, + 783.5 + ], + "quality": { + "area_px": 1330.0, + "perimeter_px": 155.56052017211914, + "sharpness": { + "laplacian_var": 1217.6423677077862 + }, + "contrast": { + "p05": 9.0, + "p95": 143.5999999999999, + "dynamic_range": 134.5999999999999, + "mean_gray": 32.961011591148576, + "std_gray": 40.88818386782848 + }, + "geometry": { + "distance_to_center_norm": 0.6870512962341309, + "distance_to_border_px": 152.0 + }, + "edge_ratio": 1.6467435687868974, + "edge_lengths_px": [ + 29.154760360717773, + 47.01063537597656, + 31.38471031188965, + 48.010414123535156 + ] + }, + "confidence": 0.53843639257073 + }, + { + "observation_id": "1d35cfc3-8cca-4f4a-8e0a-ad0ea63b175e", + "type": "aruco", + "marker_id": 243, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 598.0, + 573.0 + ], + [ + 641.0, + 573.0 + ], + [ + 642.0, + 608.0 + ], + [ + 600.0, + 608.0 + ] + ], + "center_px": [ + 620.25, + 590.5 + ], + "quality": { + "area_px": 1487.5, + "perimeter_px": 155.0713768005371, + "sharpness": { + "laplacian_var": 2181.9543597435872 + }, + "contrast": { + "p05": 31.0, + "p95": 218.0, + "dynamic_range": 187.0, + "mean_gray": 97.56387225548902, + "std_gray": 75.69147912513895 + }, + "geometry": { + "distance_to_center_norm": 0.14031389355659485, + "distance_to_border_px": 352.0 + }, + "edge_ratio": 1.2280702977649327, + "edge_lengths_px": [ + 43.0, + 35.0142822265625, + 42.0, + 35.05709457397461 + ] + }, + "confidence": 0.8074999195660731 + }, + { + "observation_id": "2a90c6aa-2f09-4703-84c2-fb981abb9609", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 100.0, + 834.0 + ], + [ + 117.0, + 804.0 + ], + [ + 160.0, + 803.0 + ], + [ + 144.0, + 832.0 + ] + ], + "center_px": [ + 130.25, + 818.25 + ], + "quality": { + "area_px": 1258.5, + "perimeter_px": 154.65992736816406, + "sharpness": { + "laplacian_var": 1718.7308581451593 + }, + "contrast": { + "p05": 5.0, + "p95": 148.0, + "dynamic_range": 143.0, + "mean_gray": 55.507990867579906, + "std_gray": 54.96051866517566 + }, + "geometry": { + "distance_to_center_norm": 0.7647080421447754, + "distance_to_border_px": 100.0 + }, + "edge_ratio": 1.3298342902232072, + "edge_lengths_px": [ + 34.48188018798828, + 43.011627197265625, + 33.12099075317383, + 44.04542922973633 + ] + }, + "confidence": 0.6309056746154269 + }, + { + "observation_id": "5df84083-f67b-4389-9ce5-4cc25e5d4f93", + "type": "aruco", + "marker_id": 178, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 610.0, + 67.0 + ], + [ + 640.0, + 77.0 + ], + [ + 645.0, + 122.0 + ], + [ + 613.0, + 110.0 + ] + ], + "center_px": [ + 627.0, + 94.0 + ], + "quality": { + "area_px": 1320.0, + "perimeter_px": 154.18023681640625, + "sharpness": { + "laplacian_var": 4076.229188375383 + }, + "contrast": { + "p05": 15.0, + "p95": 224.0, + "dynamic_range": 209.0, + "mean_gray": 103.61606160616061, + "std_gray": 82.29810449731507 + }, + "geometry": { + "distance_to_center_norm": 0.4827735424041748, + "distance_to_border_px": 67.0 + }, + "edge_ratio": 1.4317820828951904, + "edge_lengths_px": [ + 31.62277603149414, + 45.27692413330078, + 34.1760139465332, + 43.104522705078125 + ] + }, + "confidence": 0.6146186703360346 + }, + { + "observation_id": "a1bb35ea-eb86-46fe-8c23-82c21a20a322", + "type": "aruco", + "marker_id": 143, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 748.0, + 282.0 + ], + [ + 717.0, + 277.0 + ], + [ + 717.0, + 232.0 + ], + [ + 747.0, + 237.0 + ] + ], + "center_px": [ + 732.25, + 257.0 + ], + "quality": { + "area_px": 1370.0, + "perimeter_px": 151.82555770874023, + "sharpness": { + "laplacian_var": 3726.956143170197 + }, + "contrast": { + "p05": 17.0, + "p95": 231.0, + "dynamic_range": 214.0, + "mean_gray": 108.81513513513514, + "std_gray": 84.23353243895154 + }, + "geometry": { + "distance_to_center_norm": 0.30165964365005493, + "distance_to_border_px": 232.0 + }, + "edge_ratio": 1.4799561283280895, + "edge_lengths_px": [ + 31.400636672973633, + 45.0, + 30.4138126373291, + 45.0111083984375 + ] + }, + "confidence": 0.6171354108754079 + }, + { + "observation_id": "0eb08464-0308-444b-9fa6-21d8f3f86b29", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 732.0, + 825.0 + ], + [ + 732.0, + 796.0 + ], + [ + 777.0, + 795.0 + ], + [ + 779.0, + 825.0 + ] + ], + "center_px": [ + 755.0, + 810.25 + ], + "quality": { + "area_px": 1357.5, + "perimeter_px": 151.07770156860352, + "sharpness": { + "laplacian_var": 2331.6486435169404 + }, + "contrast": { + "p05": 14.0, + "p95": 171.5999999999999, + "dynamic_range": 157.5999999999999, + "mean_gray": 68.26238145416228, + "std_gray": 62.348367521367116 + }, + "geometry": { + "distance_to_center_norm": 0.43712493777275085, + "distance_to_border_px": 135.0 + }, + "edge_ratio": 1.6206896551724137, + "edge_lengths_px": [ + 29.0, + 45.0111083984375, + 30.066593170166016, + 47.0 + ] + }, + "confidence": 0.558404255319149 + }, + { + "observation_id": "23d5f551-7214-4cd9-a6a5-ffde721f8746", + "type": "aruco", + "marker_id": 146, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 746.0, + 408.0 + ], + [ + 716.0, + 400.0 + ], + [ + 713.0, + 357.0 + ], + [ + 745.0, + 365.0 + ] + ], + "center_px": [ + 730.0, + 382.5 + ], + "quality": { + "area_px": 1317.0, + "perimeter_px": 150.1493434906006, + "sharpness": { + "laplacian_var": 3500.9000013550117 + }, + "contrast": { + "p05": 18.0, + "p95": 221.0, + "dynamic_range": 203.0, + "mean_gray": 90.0788013318535, + "std_gray": 77.04876445041587 + }, + "geometry": { + "distance_to_center_norm": 0.16586066782474518, + "distance_to_border_px": 357.0 + }, + "edge_ratio": 1.38830319695383, + "edge_lengths_px": [ + 31.048349380493164, + 43.104522705078125, + 32.98484420776367, + 43.011627197265625 + ] + }, + "confidence": 0.6324266931938781 + }, + { + "observation_id": "284c6d1f-74fb-4765-8b7b-8403bc547b4c", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 435.0, + 814.0 + ], + [ + 444.0, + 786.0 + ], + [ + 486.0, + 784.0 + ], + [ + 480.0, + 815.0 + ] + ], + "center_px": [ + 461.25, + 799.75 + ], + "quality": { + "area_px": 1279.5, + "perimeter_px": 148.04488945007324, + "sharpness": { + "laplacian_var": 1898.4866011511167 + }, + "contrast": { + "p05": 13.0, + "p95": 165.0, + "dynamic_range": 152.0, + "mean_gray": 71.8202502844141, + "std_gray": 62.691051335665385 + }, + "geometry": { + "distance_to_center_norm": 0.457902193069458, + "distance_to_border_px": 145.0 + }, + "edge_ratio": 1.5304235671951851, + "edge_lengths_px": [ + 29.4108829498291, + 42.04759216308594, + 31.575305938720703, + 45.0111083984375 + ] + }, + "confidence": 0.5573620390355706 + }, + { + "observation_id": "c7808cef-894f-4fba-b717-22efb8e98ac1", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 620.0, + 797.0 + ], + [ + 621.0, + 768.0 + ], + [ + 665.0, + 767.0 + ], + [ + 664.0, + 794.0 + ] + ], + "center_px": [ + 642.5, + 781.5 + ], + "quality": { + "area_px": 1230.0, + "perimeter_px": 144.14926719665527, + "sharpness": { + "laplacian_var": 2030.2197598123316 + }, + "contrast": { + "p05": 15.0, + "p95": 173.0, + "dynamic_range": 158.0, + "mean_gray": 78.82366863905325, + "std_gray": 63.243183571021255 + }, + "geometry": { + "distance_to_center_norm": 0.3768879771232605, + "distance_to_border_px": 163.0 + }, + "edge_ratio": 1.6322939099424927, + "edge_lengths_px": [ + 29.017236709594727, + 44.0113639831543, + 27.018512725830078, + 44.10215377807617 + ] + }, + "confidence": 0.5023605093453355 + }, + { + "observation_id": "0f547793-80de-46b3-9812-c9debd93408e", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 216.0, + 756.0 + ], + [ + 229.0, + 730.0 + ], + [ + 269.0, + 729.0 + ], + [ + 258.0, + 755.0 + ] + ], + "center_px": [ + 243.0, + 742.5 + ], + "quality": { + "area_px": 1054.0, + "perimeter_px": 139.32447052001953, + "sharpness": { + "laplacian_var": 1964.3909426665516 + }, + "contrast": { + "p05": 6.0, + "p95": 157.0, + "dynamic_range": 151.0, + "mean_gray": 60.33017591339648, + "std_gray": 58.16240429561631 + }, + "geometry": { + "distance_to_center_norm": 0.5949202179908752, + "distance_to_border_px": 204.0 + }, + "edge_ratio": 1.48813794597262, + "edge_lengths_px": [ + 29.068883895874023, + 40.01249694824219, + 28.23118782043457, + 42.01190185546875 + ] + }, + "confidence": 0.4721784486231997 + }, + { + "observation_id": "677d6f46-7ebc-4f6a-9a26-1489a7b20f98", + "type": "aruco", + "marker_id": 179, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 681.0, + 124.0 + ], + [ + 710.0, + 90.0 + ], + [ + 734.0, + 86.0 + ], + [ + 703.0, + 122.0 + ] + ], + "center_px": [ + 707.0, + 105.5 + ], + "quality": { + "area_px": 715.0, + "perimeter_px": 138.61746978759766, + "sharpness": { + "laplacian_var": 5117.431845223827 + }, + "contrast": { + "p05": 27.0, + "p95": 199.0, + "dynamic_range": 172.0, + "mean_gray": 111.12317327766179, + "std_gray": 63.03903639952653 + }, + "geometry": { + "distance_to_center_norm": 0.4755576252937317, + "distance_to_border_px": 86.0 + }, + "edge_ratio": 2.1505813381224153, + "edge_lengths_px": [ + 44.68780517578125, + 24.331050872802734, + 47.50789260864258, + 22.090721130371094 + ] + }, + "confidence": 0.22164549566994052 + }, + { + "observation_id": "1910f211-ccd9-4396-ac60-f5994701de18", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 112.0, + 726.0 + ], + [ + 128.0, + 702.0 + ], + [ + 167.0, + 702.0 + ], + [ + 152.0, + 726.0 + ] + ], + "center_px": [ + 139.75, + 714.0 + ], + "quality": { + "area_px": 948.0, + "perimeter_px": 136.14635276794434, + "sharpness": { + "laplacian_var": 1679.942156213018 + }, + "contrast": { + "p05": 5.0, + "p95": 150.54999999999995, + "dynamic_range": 145.54999999999995, + "mean_gray": 58.19538461538462, + "std_gray": 55.86762081582946 + }, + "geometry": { + "distance_to_center_norm": 0.6903419494628906, + "distance_to_border_px": 112.0 + }, + "edge_ratio": 1.4133305351821348, + "edge_lengths_px": [ + 28.844409942626953, + 39.0, + 28.301942825317383, + 40.0 + ] + }, + "confidence": 0.4471706966400147 + }, + { + "observation_id": "7f141f30-b688-4197-b434-f3a84542719e", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 326.0, + 720.0 + ], + [ + 336.0, + 697.0 + ], + [ + 375.0, + 695.0 + ], + [ + 366.0, + 720.0 + ] + ], + "center_px": [ + 350.75, + 708.0 + ], + "quality": { + "area_px": 938.5, + "perimeter_px": 130.70177841186523, + "sharpness": { + "laplacian_var": 1552.29517627377 + }, + "contrast": { + "p05": 15.0, + "p95": 162.0, + "dynamic_range": 147.0, + "mean_gray": 97.95238095238095, + "std_gray": 59.37647757151911 + }, + "geometry": { + "distance_to_center_norm": 0.4603829085826874, + "distance_to_border_px": 240.0 + }, + "edge_ratio": 1.5949044632489766, + "edge_lengths_px": [ + 25.079872131347656, + 39.051246643066406, + 26.570659637451172, + 40.0 + ] + }, + "confidence": 0.3922909999211629 + }, + { + "observation_id": "ac067053-d9fb-47e7-9b1e-2184b1902ee1", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 832.0, + 697.0 + ], + [ + 830.0, + 673.0 + ], + [ + 870.0, + 674.0 + ], + [ + 874.0, + 697.0 + ] + ], + "center_px": [ + 851.5, + 685.25 + ], + "quality": { + "area_px": 962.0, + "perimeter_px": 129.44092178344727, + "sharpness": { + "laplacian_var": 1640.2315806902307 + }, + "contrast": { + "p05": 11.0, + "p95": 147.85000000000002, + "dynamic_range": 136.85000000000002, + "mean_gray": 38.221385542168676, + "std_gray": 41.325924218801255 + }, + "geometry": { + "distance_to_center_norm": 0.36839985847473145, + "distance_to_border_px": 263.0 + }, + "edge_ratio": 1.799082275954978, + "edge_lengths_px": [ + 24.083189010620117, + 40.01249694824219, + 23.34523582458496, + 42.0 + ] + }, + "confidence": 0.3564780454484243 + }, + { + "observation_id": "a36767aa-e429-444a-aac9-c85b70e56307", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 773.0, + 711.0 + ], + [ + 772.0, + 687.0 + ], + [ + 813.0, + 686.0 + ], + [ + 815.0, + 708.0 + ] + ], + "center_px": [ + 793.25, + 698.0 + ], + "quality": { + "area_px": 957.5, + "perimeter_px": 129.23074340820312, + "sharpness": { + "laplacian_var": 2010.2993408332864 + }, + "contrast": { + "p05": 14.200000000000003, + "p95": 168.0, + "dynamic_range": 153.8, + "mean_gray": 80.81052631578947, + "std_gray": 62.91890145157787 + }, + "geometry": { + "distance_to_center_norm": 0.3330952525138855, + "distance_to_border_px": 249.0 + }, + "edge_ratio": 1.9060946822196703, + "edge_lengths_px": [ + 24.020824432373047, + 41.01219177246094, + 22.090721130371094, + 42.10700607299805 + ] + }, + "confidence": 0.3348906742607279 + }, + { + "observation_id": "e1e7876a-42c0-408b-9b76-3c7fffc9f3e3", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1176.0, + 574.0 + ], + [ + 1215.0, + 573.0 + ], + [ + 1230.0, + 592.0 + ], + [ + 1189.0, + 593.0 + ] + ], + "center_px": [ + 1202.5, + 583.0 + ], + "quality": { + "area_px": 774.0, + "perimeter_px": 127.25417518615723, + "sharpness": { + "laplacian_var": 2139.513973932892 + }, + "contrast": { + "p05": 7.5, + "p95": 147.0, + "dynamic_range": 139.5, + "mean_gray": 58.471869328493646, + "std_gray": 52.35761634246344 + }, + "geometry": { + "distance_to_center_norm": 0.714815616607666, + "distance_to_border_px": 50.0 + }, + "edge_ratio": 1.7814557992300921, + "edge_lengths_px": [ + 39.0128173828125, + 24.20743751525879, + 41.01219177246094, + 23.021728515625 + ] + }, + "confidence": 0.28965074531908364 + }, + { + "observation_id": "92702c1d-daf0-46d4-a2a0-faed0216a21c", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 435.0, + 703.0 + ], + [ + 442.0, + 680.0 + ], + [ + 480.0, + 678.0 + ], + [ + 475.0, + 701.0 + ] + ], + "center_px": [ + 458.0, + 690.5 + ], + "quality": { + "area_px": 885.0, + "perimeter_px": 125.68140029907227, + "sharpness": { + "laplacian_var": 2173.634276381615 + }, + "contrast": { + "p05": 17.0, + "p95": 161.0, + "dynamic_range": 144.0, + "mean_gray": 70.43238731218698, + "std_gray": 55.48762456870332 + }, + "geometry": { + "distance_to_center_norm": 0.3478376269340515, + "distance_to_border_px": 257.0 + }, + "edge_ratio": 1.7015601112260554, + "edge_lengths_px": [ + 24.041629791259766, + 38.05259704589844, + 23.53720474243164, + 40.04996871948242 + ] + }, + "confidence": 0.34674061533734285 + }, + { + "observation_id": "c141bd08-41ac-433d-a9ae-e3ccee35d167", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 676.0, + 684.0 + ], + [ + 677.0, + 661.0 + ], + [ + 716.0, + 661.0 + ], + [ + 716.0, + 683.0 + ] + ], + "center_px": [ + 696.25, + 672.25 + ], + "quality": { + "area_px": 888.5, + "perimeter_px": 124.03422546386719, + "sharpness": { + "laplacian_var": 2470.381435815291 + }, + "contrast": { + "p05": 12.0, + "p95": 153.0, + "dynamic_range": 141.0, + "mean_gray": 78.189852700491, + "std_gray": 55.596511934276705 + }, + "geometry": { + "distance_to_center_norm": 0.250387579202652, + "distance_to_border_px": 276.0 + }, + "edge_ratio": 1.8187498612837358, + "edge_lengths_px": [ + 23.021728515625, + 39.0, + 22.0, + 40.01249694824219 + ] + }, + "confidence": 0.3256815826862768 + }, + { + "observation_id": "6cebfa2b-d87b-43a1-878b-0843e1a4a02a", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 601.0, + 499.0 + ], + [ + 641.0, + 497.0 + ], + [ + 641.0, + 518.0 + ], + [ + 598.0, + 518.0 + ] + ], + "center_px": [ + 620.25, + 508.0 + ], + "quality": { + "area_px": 828.5, + "perimeter_px": 123.28535270690918, + "sharpness": { + "laplacian_var": 1837.3403008262126 + }, + "contrast": { + "p05": 25.0, + "p95": 164.0, + "dynamic_range": 139.0, + "mean_gray": 70.32100840336135, + "std_gray": 50.64550860481377 + }, + "geometry": { + "distance_to_center_norm": 0.04283074289560318, + "distance_to_border_px": 442.0 + }, + "edge_ratio": 2.2354635617415815, + "edge_lengths_px": [ + 40.04996871948242, + 21.0, + 43.0, + 19.235383987426758 + ] + }, + "confidence": 0.2470777617609778 + }, + { + "observation_id": "215be18e-7209-49e6-8801-0d5b8d6dc05a", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 981.0, + 580.0 + ], + [ + 1020.0, + 580.0 + ], + [ + 1027.0, + 598.0 + ], + [ + 987.0, + 599.0 + ] + ], + "center_px": [ + 1003.75, + 589.25 + ], + "quality": { + "area_px": 734.0, + "perimeter_px": 118.25056266784668, + "sharpness": { + "laplacian_var": 2984.908518518518 + }, + "contrast": { + "p05": 7.0, + "p95": 156.0, + "dynamic_range": 149.0, + "mean_gray": 64.06481481481481, + "std_gray": 56.668083830015874 + }, + "geometry": { + "distance_to_center_norm": 0.47475260496139526, + "distance_to_border_px": 253.0 + }, + "edge_ratio": 2.071768590819997, + "edge_lengths_px": [ + 39.0, + 19.313207626342773, + 40.01249694824219, + 19.92485809326172 + ] + }, + "confidence": 0.2361911149254644 + }, + { + "observation_id": "bbb4252c-7620-4d82-84af-7451cf6464b6", + "type": "aruco", + "marker_id": 198, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 607.0, + 431.0 + ], + [ + 642.0, + 430.0 + ], + [ + 642.0, + 446.0 + ], + [ + 603.0, + 447.0 + ] + ], + "center_px": [ + 623.5, + 438.5 + ], + "quality": { + "area_px": 590.0, + "perimeter_px": 106.51952171325684, + "sharpness": { + "laplacian_var": 3027.346435986159 + }, + "contrast": { + "p05": 23.0, + "p95": 167.0, + "dynamic_range": 144.0, + "mean_gray": 83.71764705882353, + "std_gray": 53.675717319452616 + }, + "geometry": { + "distance_to_center_norm": 0.055824778974056244, + "distance_to_border_px": 430.0 + }, + "edge_ratio": 2.4383010864257812, + "edge_lengths_px": [ + 35.0142822265625, + 16.0, + 39.0128173828125, + 16.492422103881836 + ] + }, + "confidence": 0.16131450521965957 + }, + { + "observation_id": "987d800f-074e-4a0c-a78c-11a17795ec6d", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 997.0, + 512.0 + ], + [ + 1032.0, + 510.0 + ], + [ + 1039.0, + 526.0 + ], + [ + 1003.0, + 527.0 + ] + ], + "center_px": [ + 1017.75, + 518.75 + ], + "quality": { + "area_px": 560.0, + "perimeter_px": 104.69072341918945, + "sharpness": { + "laplacian_var": 3056.7590187236547 + }, + "contrast": { + "p05": 16.0, + "p95": 159.0, + "dynamic_range": 143.0, + "mean_gray": 88.80940594059406, + "std_gray": 55.22484025178536 + }, + "geometry": { + "distance_to_center_norm": 0.4746653735637665, + "distance_to_border_px": 241.0 + }, + "edge_ratio": 2.229203511822484, + "edge_lengths_px": [ + 35.05709457397461, + 17.464248657226562, + 36.013885498046875, + 16.155494689941406 + ] + }, + "confidence": 0.1674738673940608 + }, + { + "observation_id": "76b6b580-a479-4060-bb34-db7cd168c6a4", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 426.0, + 525.0 + ], + [ + 458.0, + 525.0 + ], + [ + 453.0, + 540.0 + ], + [ + 420.0, + 540.0 + ] + ], + "center_px": [ + 439.25, + 532.5 + ], + "quality": { + "area_px": 487.5, + "perimeter_px": 96.96688270568848, + "sharpness": { + "laplacian_var": 2292.68210261852 + }, + "contrast": { + "p05": 26.0, + "p95": 140.0, + "dynamic_range": 114.0, + "mean_gray": 72.16201117318435, + "std_gray": 40.570464369974935 + }, + "geometry": { + "distance_to_center_norm": 0.2593767046928406, + "distance_to_border_px": 420.0 + }, + "edge_ratio": 2.087103293343648, + "edge_lengths_px": [ + 32.0, + 15.81138801574707, + 33.0, + 16.155494689941406 + ] + }, + "confidence": 0.15571821530659996 + }, + { + "observation_id": "9e637346-1f24-4e88-a1c0-91614dee18f0", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1015.0, + 441.0 + ], + [ + 1009.0, + 429.0 + ], + [ + 1040.0, + 428.0 + ], + [ + 1045.0, + 439.0 + ] + ], + "center_px": [ + 1027.25, + 434.25 + ], + "quality": { + "area_px": 359.0, + "perimeter_px": 86.58217144012451, + "sharpness": { + "laplacian_var": 2717.9174408284025 + }, + "contrast": { + "p05": 10.950000000000001, + "p95": 139.14999999999995, + "dynamic_range": 128.19999999999996, + "mean_gray": 61.18076923076923, + "std_gray": 46.01732549336315 + }, + "geometry": { + "distance_to_center_norm": 0.4874289035797119, + "distance_to_border_px": 235.0 + }, + "edge_ratio": 2.566912749431886, + "edge_lengths_px": [ + 13.416407585144043, + 31.016124725341797, + 12.083045959472656, + 30.066593170166016 + ] + }, + "confidence": 0.09323781394061914 + }, + { + "observation_id": "76304739-8ad4-4afd-a639-4a90d6d7333d", + "type": "aruco", + "marker_id": 204, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 524.0, + 296.0 + ], + [ + 556.0, + 296.0 + ], + [ + 554.0, + 305.0 + ], + [ + 520.0, + 306.0 + ] + ], + "center_px": [ + 538.5, + 300.75 + ], + "quality": { + "area_px": 312.0, + "perimeter_px": 86.00457572937012, + "sharpness": { + "laplacian_var": 2229.9914840083225 + }, + "contrast": { + "p05": 34.0, + "p95": 141.0, + "dynamic_range": 107.0, + "mean_gray": 72.6867469879518, + "std_gray": 38.080951940082755 + }, + "geometry": { + "distance_to_center_norm": 0.257490336894989, + "distance_to_border_px": 296.0 + }, + "edge_ratio": 3.6894124403549124, + "edge_lengths_px": [ + 32.0, + 9.219544410705566, + 34.01470184326172, + 10.770329475402832 + ] + }, + "confidence": 0.05637754069588135 + }, + { + "observation_id": "c17d8632-0cba-40e6-9b2a-00d36c2da03c", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1005.0, + 420.0 + ], + [ + 1000.0, + 408.0 + ], + [ + 1029.0, + 408.0 + ], + [ + 1034.0, + 418.0 + ] + ], + "center_px": [ + 1017.0, + 413.5 + ], + "quality": { + "area_px": 324.0, + "perimeter_px": 82.24922370910645, + "sharpness": { + "laplacian_var": 3214.651233650416 + }, + "contrast": { + "p05": 8.55, + "p95": 143.0, + "dynamic_range": 134.45, + "mean_gray": 58.78448275862069, + "std_gray": 46.0148600500112 + }, + "geometry": { + "distance_to_center_norm": 0.47852516174316406, + "distance_to_border_px": 246.0 + }, + "edge_ratio": 2.60000003411969, + "edge_lengths_px": [ + 13.0, + 29.0, + 11.180339813232422, + 29.068883895874023 + ] + }, + "confidence": 0.08307692198670814 + }, + { + "observation_id": "89b9f8cf-8b52-43dd-bfd5-0d40a7a3a7ef", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1155.0, + 361.0 + ], + [ + 1149.0, + 352.0 + ], + [ + 1175.0, + 350.0 + ], + [ + 1183.0, + 360.0 + ] + ], + "center_px": [ + 1165.5, + 355.75 + ], + "quality": { + "area_px": 267.0, + "perimeter_px": 77.71756267547607, + "sharpness": { + "laplacian_var": 1919.084707429323 + }, + "contrast": { + "p05": 14.700000000000001, + "p95": 139.0, + "dynamic_range": 124.3, + "mean_gray": 66.03589743589744, + "std_gray": 45.16821827505848 + }, + "geometry": { + "distance_to_center_norm": 0.6749864816665649, + "distance_to_border_px": 97.0 + }, + "edge_ratio": 2.590251139032298, + "edge_lengths_px": [ + 10.816654205322266, + 26.07680892944336, + 12.806248664855957, + 28.017850875854492 + ] + }, + "confidence": 0.06871920537654881 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 670.0, + 389.0 + ], + [ + 685.0, + 404.0 + ], + [ + 691.0, + 425.0 + ], + [ + 679.0, + 458.0 + ] + ], + "center_px": [ + 681.25, + 419.0 + ], + "area_px": 675.0 + }, + { + "image_points_px": [ + [ + 1261.0, + 524.0 + ], + [ + 1216.0, + 525.0 + ], + [ + 1202.0, + 506.0 + ], + [ + 1245.0, + 505.0 + ] + ], + "center_px": [ + 1231.0, + 515.0 + ], + "area_px": 851.0 + }, + { + "image_points_px": [ + [ + 772.0, + 473.0 + ], + [ + 778.0, + 475.0 + ], + [ + 775.0, + 525.0 + ], + [ + 770.0, + 521.0 + ] + ], + "center_px": [ + 773.75, + 498.5 + ], + "area_px": 277.0 + }, + { + "image_points_px": [ + [ + 753.0, + 608.0 + ], + [ + 795.0, + 605.0 + ], + [ + 794.0, + 619.0 + ], + [ + 753.0, + 620.0 + ] + ], + "center_px": [ + 773.75, + 613.0 + ], + "area_px": 538.5 + }, + { + "image_points_px": [ + [ + 789.0, + 473.0 + ], + [ + 792.0, + 519.0 + ], + [ + 787.0, + 523.0 + ], + [ + 785.0, + 477.0 + ] + ], + "center_px": [ + 788.25, + 498.0 + ], + "area_px": 217.0 + }, + { + "image_points_px": [ + [ + 1193.0, + 438.0 + ], + [ + 1161.0, + 439.0 + ], + [ + 1154.0, + 428.0 + ], + [ + 1184.0, + 426.0 + ] + ], + "center_px": [ + 1173.0, + 432.75 + ], + "area_px": 368.5 + }, + { + "image_points_px": [ + [ + 450.0, + 115.0 + ], + [ + 471.0, + 115.0 + ], + [ + 471.0, + 140.0 + ], + [ + 456.0, + 141.0 + ] + ], + "center_px": [ + 462.0, + 127.75 + ], + "area_px": 460.5 + }, + { + "image_points_px": [ + [ + 915.0, + 433.0 + ], + [ + 945.0, + 432.0 + ], + [ + 949.0, + 443.0 + ], + [ + 919.0, + 444.0 + ] + ], + "center_px": [ + 932.0, + 438.0 + ], + "area_px": 334.0 + }, + { + "image_points_px": [ + [ + 960.0, + 423.0 + ], + [ + 990.0, + 422.0 + ], + [ + 994.0, + 433.0 + ], + [ + 964.0, + 434.0 + ] + ], + "center_px": [ + 977.0, + 428.0 + ], + "area_px": 334.0 + }, + { + "image_points_px": [ + [ + 1200.0, + 354.0 + ], + [ + 1229.0, + 354.0 + ], + [ + 1238.0, + 363.0 + ], + [ + 1210.0, + 363.0 + ] + ], + "center_px": [ + 1219.25, + 358.5 + ], + "area_px": 256.5 + }, + { + "image_points_px": [ + [ + 281.0, + 448.0 + ], + [ + 289.0, + 438.0 + ], + [ + 317.0, + 438.0 + ], + [ + 309.0, + 449.0 + ] + ], + "center_px": [ + 299.0, + 443.25 + ], + "area_px": 298.0 + }, + { + "image_points_px": [ + [ + 333.0, + 449.0 + ], + [ + 340.0, + 438.0 + ], + [ + 367.0, + 438.0 + ], + [ + 361.0, + 448.0 + ] + ], + "center_px": [ + 350.25, + 443.25 + ], + "area_px": 285.5 + }, + { + "image_points_px": [ + [ + 926.0, + 421.0 + ], + [ + 897.0, + 422.0 + ], + [ + 894.0, + 411.0 + ], + [ + 921.0, + 410.0 + ] + ], + "center_px": [ + 909.5, + 416.0 + ], + "area_px": 312.0 + }, + { + "image_points_px": [ + [ + 811.0, + 243.0 + ], + [ + 812.0, + 275.0 + ], + [ + 805.0, + 277.0 + ], + [ + 804.0, + 245.0 + ] + ], + "center_px": [ + 808.0, + 260.0 + ], + "area_px": 226.0 + }, + { + "image_points_px": [ + [ + 758.0, + 480.0 + ], + [ + 764.0, + 483.0 + ], + [ + 762.0, + 515.0 + ], + [ + 756.0, + 513.0 + ] + ], + "center_px": [ + 760.0, + 497.75 + ], + "area_px": 200.0 + }, + { + "image_points_px": [ + [ + 1059.0, + 359.0 + ], + [ + 1086.0, + 359.0 + ], + [ + 1092.0, + 368.0 + ], + [ + 1063.0, + 369.0 + ] + ], + "center_px": [ + 1075.0, + 363.75 + ], + "area_px": 268.5 + }, + { + "image_points_px": [ + [ + 929.0, + 385.0 + ], + [ + 957.0, + 385.0 + ], + [ + 961.0, + 394.0 + ], + [ + 933.0, + 395.0 + ] + ], + "center_px": [ + 945.0, + 389.75 + ], + "area_px": 268.0 + }, + { + "image_points_px": [ + [ + 1015.0, + 369.0 + ], + [ + 1042.0, + 367.0 + ], + [ + 1047.0, + 376.0 + ], + [ + 1020.0, + 378.0 + ] + ], + "center_px": [ + 1031.0, + 372.5 + ], + "area_px": 253.0 + }, + { + "image_points_px": [ + [ + 981.0, + 363.0 + ], + [ + 1008.0, + 363.0 + ], + [ + 1012.0, + 372.0 + ], + [ + 987.0, + 373.0 + ] + ], + "center_px": [ + 997.0, + 367.75 + ], + "area_px": 249.5 + }, + { + "image_points_px": [ + [ + 326.0, + 384.0 + ], + [ + 334.0, + 374.0 + ], + [ + 358.0, + 375.0 + ], + [ + 349.0, + 384.0 + ] + ], + "center_px": [ + 341.75, + 379.25 + ], + "area_px": 227.5 + }, + { + "image_points_px": [ + [ + 429.0, + 372.0 + ], + [ + 425.0, + 380.0 + ], + [ + 399.0, + 381.0 + ], + [ + 404.0, + 372.0 + ] + ], + "center_px": [ + 414.25, + 376.25 + ], + "area_px": 214.5 + }, + { + "image_points_px": [ + [ + 255.0, + 613.0 + ], + [ + 248.0, + 615.0 + ], + [ + 225.0, + 611.0 + ], + [ + 247.0, + 610.0 + ] + ], + "center_px": [ + 243.75, + 612.25 + ], + "area_px": 74.0 + }, + { + "image_points_px": [ + [ + 120.0, + 722.0 + ], + [ + 123.0, + 717.0 + ], + [ + 144.0, + 718.0 + ], + [ + 142.0, + 723.0 + ] + ], + "center_px": [ + 132.25, + 720.0 + ], + "area_px": 110.0 + }, + { + "image_points_px": [ + [ + 718.0, + 284.0 + ], + [ + 721.0, + 287.0 + ], + [ + 723.0, + 298.0 + ], + [ + 720.0, + 305.0 + ] + ], + "center_px": [ + 720.5, + 293.5 + ], + "area_px": 52.0 + }, + { + "image_points_px": [ + [ + 431.0, + 637.0 + ], + [ + 440.0, + 635.0 + ], + [ + 452.0, + 636.0 + ], + [ + 451.0, + 638.0 + ] + ], + "center_px": [ + 443.5, + 636.5 + ], + "area_px": 37.0 + }, + { + "image_points_px": [ + [ + 914.0, + 513.0 + ], + [ + 915.0, + 511.0 + ], + [ + 933.0, + 512.0 + ], + [ + 922.0, + 516.0 + ] + ], + "center_px": [ + 921.0, + 513.0 + ], + "area_px": 51.0 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam0_camera_pose.json b/data/homing/20260625_172504/cam0_camera_pose.json new file mode 100644 index 0000000..d1d946e --- /dev/null +++ b/data/homing/20260625_172504/cam0_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam0_debug.jpg b/data/homing/20260625_172504/cam0_debug.jpg new file mode 100644 index 0000000..3c10c12 Binary files /dev/null and b/data/homing/20260625_172504/cam0_debug.jpg differ diff --git a/data/homing/20260625_172504/cam1.jpg b/data/homing/20260625_172504/cam1.jpg new file mode 100644 index 0000000..13e72ae Binary files /dev/null and b/data/homing/20260625_172504/cam1.jpg differ diff --git a/data/homing/20260625_172504/cam1_aruco_detection.json b/data/homing/20260625_172504/cam1_aruco_detection.json new file mode 100644 index 0000000..4bd3acd --- /dev/null +++ b/data/homing/20260625_172504/cam1_aruco_detection.json @@ -0,0 +1,3662 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:25:13Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam1", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam1_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_172504/cam1.jpg", + "image_sha256": "2d23a64b532cd988e4ab0d8ba42b740a0d9779eb3b3964171eadd3de5a7a41f7", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 59, + "num_rejected_candidates": 17 + }, + "detections": [ + { + "observation_id": "0749cbed-480f-44f3-9cdc-348d1bbfd952", + "type": "aruco", + "marker_id": 179, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 751.0, + 654.0 + ], + [ + 715.0, + 696.0 + ], + [ + 685.0, + 662.0 + ], + [ + 723.0, + 621.0 + ] + ], + "center_px": [ + 718.5, + 658.25 + ], + "quality": { + "area_px": 2443.0, + "perimeter_px": 199.84027481079102, + "sharpness": { + "laplacian_var": 2610.319455530879 + }, + "contrast": { + "p05": 7.0, + "p95": 200.0, + "dynamic_range": 193.0, + "mean_gray": 86.20712968653964, + "std_gray": 79.10791489292711 + }, + "geometry": { + "distance_to_center_norm": 0.24346236884593964, + "distance_to_border_px": 264.0 + }, + "edge_ratio": 1.291683476400808, + "edge_lengths_px": [ + 55.31726837158203, + 45.343135833740234, + 55.90169906616211, + 43.27817153930664 + ] + }, + "confidence": 0.774183473172882 + }, + { + "observation_id": "a350c836-1ca4-4deb-9d6b-317684dfdb46", + "type": "aruco", + "marker_id": 200, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 991.0, + 644.0 + ], + [ + 948.0, + 645.0 + ], + [ + 949.0, + 609.0 + ], + [ + 992.0, + 608.0 + ] + ], + "center_px": [ + 970.0, + 626.5 + ], + "quality": { + "area_px": 1547.0, + "perimeter_px": 158.051025390625, + "sharpness": { + "laplacian_var": 2760.896554983138 + }, + "contrast": { + "p05": 3.0, + "p95": 163.0, + "dynamic_range": 160.0, + "mean_gray": 53.294566253574835, + "std_gray": 60.11874156807449 + }, + "geometry": { + "distance_to_center_norm": 0.45132142305374146, + "distance_to_border_px": 288.0 + }, + "edge_ratio": 1.1943067681380355, + "edge_lengths_px": [ + 43.011627197265625, + 36.013885498046875, + 43.011627197265625, + 36.013885498046875 + ] + }, + "confidence": 0.8373058134460996 + }, + { + "observation_id": "eb9d28c0-890b-4b06-b241-9f1fd888feb2", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 757.0, + 16.0 + ], + [ + 756.0, + 61.0 + ], + [ + 714.0, + 61.0 + ], + [ + 714.0, + 16.0 + ] + ], + "center_px": [ + 735.25, + 38.5 + ], + "quality": { + "area_px": 1912.5, + "perimeter_px": 175.0111083984375, + "sharpness": { + "laplacian_var": 1784.3402392426942 + }, + "contrast": { + "p05": 4.0, + "p95": 163.20000000000005, + "dynamic_range": 159.20000000000005, + "mean_gray": 37.696945967110416, + "std_gray": 54.546020730361704 + }, + "geometry": { + "distance_to_center_norm": 0.564572274684906, + "distance_to_border_px": 16.0 + }, + "edge_ratio": 1.0716930571056547, + "edge_lengths_px": [ + 45.0111083984375, + 42.0, + 45.0, + 43.0 + ] + }, + "confidence": 0.2985929580100399 + }, + { + "observation_id": "b6a07763-729f-4d58-b1e3-15a4c6d09e91", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 620.0, + 570.0 + ], + [ + 673.0, + 573.0 + ], + [ + 667.0, + 607.0 + ], + [ + 612.0, + 601.0 + ] + ], + "center_px": [ + 643.0, + 587.75 + ], + "quality": { + "area_px": 1786.5, + "perimeter_px": 174.95211791992188, + "sharpness": { + "laplacian_var": 4595.848311606946 + }, + "contrast": { + "p05": 19.1, + "p95": 251.0, + "dynamic_range": 231.9, + "mean_gray": 98.46017699115045, + "std_gray": 85.17072334348242 + }, + "geometry": { + "distance_to_center_norm": 0.1347396969795227, + "distance_to_border_px": 353.0 + }, + "edge_ratio": 1.7281034489127043, + "edge_lengths_px": [ + 53.0848388671875, + 34.525352478027344, + 55.3263053894043, + 32.015621185302734 + ] + }, + "confidence": 0.578669060946082 + }, + { + "observation_id": "7565632d-e176-455c-91c8-07d8849aa916", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1030.0, + 118.0 + ], + [ + 1025.0, + 160.0 + ], + [ + 982.0, + 160.0 + ], + [ + 985.0, + 118.0 + ] + ], + "center_px": [ + 1005.5, + 139.0 + ], + "quality": { + "area_px": 1848.0, + "perimeter_px": 172.40357971191406, + "sharpness": { + "laplacian_var": 2274.3586915233677 + }, + "contrast": { + "p05": 2.0, + "p95": 163.0, + "dynamic_range": 161.0, + "mean_gray": 61.63819500402901, + "std_gray": 66.9357067587123 + }, + "geometry": { + "distance_to_center_norm": 0.6248390674591064, + "distance_to_border_px": 118.0 + }, + "edge_ratio": 1.068705761743938, + "edge_lengths_px": [ + 42.296573638916016, + 43.0, + 42.10700607299805, + 45.0 + ] + }, + "confidence": 0.9357112460666233 + }, + { + "observation_id": "7acfd932-5467-4995-afb8-abd03c10b519", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1260.0, + 215.0 + ], + [ + 1253.0, + 256.0 + ], + [ + 1210.0, + 255.0 + ], + [ + 1216.0, + 215.0 + ] + ], + "center_px": [ + 1234.75, + 235.25 + ], + "quality": { + "area_px": 1765.0, + "perimeter_px": 169.05239486694336, + "sharpness": { + "laplacian_var": 1689.2058461322993 + }, + "contrast": { + "p05": 1.0, + "p95": 149.0, + "dynamic_range": 148.0, + "mean_gray": 50.29184188393608, + "std_gray": 58.7549667271662 + }, + "geometry": { + "distance_to_center_norm": 0.8039259910583496, + "distance_to_border_px": 20.0 + }, + "edge_ratio": 1.0878299481027616, + "edge_lengths_px": [ + 41.59326934814453, + 43.011627197265625, + 40.4474983215332, + 44.0 + ] + }, + "confidence": 0.36770453019575644 + }, + { + "observation_id": "6b23eb24-1c15-4d63-a920-7f7f650a063e", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 477.0, + 47.0 + ], + [ + 480.0, + 90.0 + ], + [ + 440.0, + 90.0 + ], + [ + 435.0, + 47.0 + ] + ], + "center_px": [ + 458.0, + 68.5 + ], + "quality": { + "area_px": 1763.0, + "perimeter_px": 168.39424514770508, + "sharpness": { + "laplacian_var": 2902.051482239955 + }, + "contrast": { + "p05": 2.0, + "p95": 167.0, + "dynamic_range": 165.0, + "mean_gray": 94.76638655462185, + "std_gray": 68.71203492901276 + }, + "geometry": { + "distance_to_center_norm": 0.5624392032623291, + "distance_to_border_px": 47.0 + }, + "edge_ratio": 1.082243061065674, + "edge_lengths_px": [ + 43.104522705078125, + 40.0, + 43.28972244262695, + 42.0 + ] + }, + "confidence": 0.8685664374455692 + }, + { + "observation_id": "82dd9423-246f-4ced-ba16-89ca13c13da8", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 870.0, + 440.0 + ], + [ + 827.0, + 439.0 + ], + [ + 827.0, + 400.0 + ], + [ + 872.0, + 400.0 + ] + ], + "center_px": [ + 849.0, + 419.75 + ], + "quality": { + "area_px": 1738.5, + "perimeter_px": 167.06159591674805, + "sharpness": { + "laplacian_var": 1321.9393925675574 + }, + "contrast": { + "p05": 13.0, + "p95": 162.0, + "dynamic_range": 149.0, + "mean_gray": 58.13036164844407, + "std_gray": 58.09977203454718 + }, + "geometry": { + "distance_to_center_norm": 0.2718888223171234, + "distance_to_border_px": 400.0 + }, + "edge_ratio": 1.1538461538461537, + "edge_lengths_px": [ + 43.011627197265625, + 39.0, + 45.0, + 40.04996871948242 + ] + }, + "confidence": 0.8666666666666667 + }, + { + "observation_id": "e8ddb859-0459-4229-bcd0-ca291e30fde9", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 856.0, + 139.0 + ], + [ + 853.0, + 181.0 + ], + [ + 813.0, + 180.0 + ], + [ + 814.0, + 139.0 + ] + ], + "center_px": [ + 834.0, + 159.75 + ], + "quality": { + "area_px": 1702.5, + "perimeter_px": 165.13169479370117, + "sharpness": { + "laplacian_var": 2340.2410189599955 + }, + "contrast": { + "p05": 4.0, + "p95": 171.0, + "dynamic_range": 167.0, + "mean_gray": 70.1406945681211, + "std_gray": 69.14695702207365 + }, + "geometry": { + "distance_to_center_norm": 0.468034565448761, + "distance_to_border_px": 139.0 + }, + "edge_ratio": 1.0523463738707732, + "edge_lengths_px": [ + 42.10700607299805, + 40.01249694824219, + 41.01219177246094, + 42.0 + ] + }, + "confidence": 0.9502574673410703 + }, + { + "observation_id": "4ccfd7a5-901c-4bcd-8a15-d46cc650260d", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 753.0, + 97.0 + ], + [ + 751.0, + 139.0 + ], + [ + 711.0, + 137.0 + ], + [ + 711.0, + 96.0 + ] + ], + "center_px": [ + 731.5, + 117.25 + ], + "quality": { + "area_px": 1703.0, + "perimeter_px": 165.1094627380371, + "sharpness": { + "laplacian_var": 2350.065578218498 + }, + "contrast": { + "p05": 4.0, + "p95": 168.0, + "dynamic_range": 164.0, + "mean_gray": 61.596136962247584, + "std_gray": 65.77316370082602 + }, + "geometry": { + "distance_to_center_norm": 0.4676400423049927, + "distance_to_border_px": 96.0 + }, + "edge_ratio": 1.049878277248985, + "edge_lengths_px": [ + 42.04759216308594, + 40.04996871948242, + 41.0, + 42.01190185546875 + ] + }, + "confidence": 0.9524913713047937 + }, + { + "observation_id": "0a69060f-7cb5-4d9e-b590-d3b1271fcce9", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1153.0, + 265.0 + ], + [ + 1147.0, + 304.0 + ], + [ + 1105.0, + 304.0 + ], + [ + 1110.0, + 265.0 + ] + ], + "center_px": [ + 1128.75, + 284.5 + ], + "quality": { + "area_px": 1657.5, + "perimeter_px": 163.77804565429688, + "sharpness": { + "laplacian_var": 2257.9881192156 + }, + "contrast": { + "p05": 1.6500000000000057, + "p95": 159.0, + "dynamic_range": 157.35, + "mean_gray": 81.21209540034071, + "std_gray": 67.78945878619938 + }, + "geometry": { + "distance_to_center_norm": 0.6579998135566711, + "distance_to_border_px": 127.0 + }, + "edge_ratio": 1.0936131248414958, + "edge_lengths_px": [ + 39.458839416503906, + 42.0, + 39.31920623779297, + 43.0 + ] + }, + "confidence": 0.9144001450649527 + }, + { + "observation_id": "3ef202ab-6df3-44e5-92be-22a3aa87b529", + "type": "aruco", + "marker_id": 59, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 279.0, + 103.0 + ], + [ + 285.0, + 144.0 + ], + [ + 246.0, + 144.0 + ], + [ + 239.0, + 103.0 + ] + ], + "center_px": [ + 262.25, + 123.5 + ], + "quality": { + "area_px": 1619.5, + "perimeter_px": 162.02996826171875, + "sharpness": { + "laplacian_var": 2089.0136049644725 + }, + "contrast": { + "p05": 2.0, + "p95": 154.0, + "dynamic_range": 152.0, + "mean_gray": 78.1778398510242, + "std_gray": 64.64679160911528 + }, + "geometry": { + "distance_to_center_norm": 0.6492631435394287, + "distance_to_border_px": 103.0 + }, + "edge_ratio": 1.0664940858498597, + "edge_lengths_px": [ + 41.43669891357422, + 39.0, + 41.59326934814453, + 40.0 + ] + }, + "confidence": 0.9376517069038668 + }, + { + "observation_id": "fc36eb92-95ae-4782-9979-9926ca4e5500", + "type": "aruco", + "marker_id": 48, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 165.0, + 30.0 + ], + [ + 171.0, + 72.0 + ], + [ + 132.0, + 71.0 + ], + [ + 126.0, + 31.0 + ] + ], + "center_px": [ + 148.5, + 51.0 + ], + "quality": { + "area_px": 1599.0, + "perimeter_px": 160.89953994750977, + "sharpness": { + "laplacian_var": 1265.0389131422392 + }, + "contrast": { + "p05": 3.0, + "p95": 141.0, + "dynamic_range": 138.0, + "mean_gray": 45.45953488372093, + "std_gray": 53.319353698759656 + }, + "geometry": { + "distance_to_center_norm": 0.8154880404472351, + "distance_to_border_px": 30.0 + }, + "edge_ratio": 1.0874991786428363, + "edge_lengths_px": [ + 42.42640686035156, + 39.0128173828125, + 40.4474983215332, + 39.0128173828125 + ] + }, + "confidence": 0.5517245546325658 + }, + { + "observation_id": "d4b90989-a3b3-4425-8ee0-2f9c6dd3502b", + "type": "aruco", + "marker_id": 198, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 868.0, + 581.0 + ], + [ + 827.0, + 580.0 + ], + [ + 824.0, + 543.0 + ], + [ + 869.0, + 544.0 + ] + ], + "center_px": [ + 847.0, + 562.0 + ], + "quality": { + "area_px": 1590.0, + "perimeter_px": 160.15823364257812, + "sharpness": { + "laplacian_var": 2662.1722415541512 + }, + "contrast": { + "p05": 5.0, + "p95": 162.0, + "dynamic_range": 157.0, + "mean_gray": 65.71546961325967, + "std_gray": 62.648461464417885 + }, + "geometry": { + "distance_to_center_norm": 0.27831244468688965, + "distance_to_border_px": 379.0 + }, + "edge_ratio": 1.216072357972435, + "edge_lengths_px": [ + 41.01219177246094, + 37.121421813964844, + 45.0111083984375, + 37.013511657714844 + ] + }, + "confidence": 0.8223194890041792 + }, + { + "observation_id": "b4b4192b-1739-435e-9e9b-0b94fe542ad9", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 449.0, + 128.0 + ], + [ + 454.0, + 168.0 + ], + [ + 415.0, + 168.0 + ], + [ + 410.0, + 127.0 + ] + ], + "center_px": [ + 432.0, + 147.75 + ], + "quality": { + "area_px": 1577.0, + "perimeter_px": 159.62785720825195, + "sharpness": { + "laplacian_var": 1535.638906194375 + }, + "contrast": { + "p05": 3.0, + "p95": 153.0, + "dynamic_range": 150.0, + "mean_gray": 29.31132075471698, + "std_gray": 46.29441532958849 + }, + "geometry": { + "distance_to_center_norm": 0.4899841547012329, + "distance_to_border_px": 127.0 + }, + "edge_ratio": 1.0590705871582031, + "edge_lengths_px": [ + 40.31128692626953, + 39.0, + 41.30375289916992, + 39.0128173828125 + ] + }, + "confidence": 0.9442241264421224 + }, + { + "observation_id": "fffa6960-5b98-4648-99b3-50b1298ab4ea", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1042.0, + 289.0 + ], + [ + 1038.0, + 327.0 + ], + [ + 998.0, + 327.0 + ], + [ + 1001.0, + 289.0 + ] + ], + "center_px": [ + 1019.75, + 308.0 + ], + "quality": { + "area_px": 1539.0, + "perimeter_px": 157.32818222045898, + "sharpness": { + "laplacian_var": 2240.771716278681 + }, + "contrast": { + "p05": 3.0, + "p95": 162.0, + "dynamic_range": 159.0, + "mean_gray": 55.896455223880594, + "std_gray": 63.33270289582846 + }, + "geometry": { + "distance_to_center_norm": 0.5211076736450195, + "distance_to_border_px": 238.0 + }, + "edge_ratio": 1.075600649969622, + "edge_lengths_px": [ + 38.20994567871094, + 40.0, + 38.11823654174805, + 41.0 + ] + }, + "confidence": 0.9297130863840988 + }, + { + "observation_id": "3fd8b159-3a9b-4ed5-8117-b5bfcb37156f", + "type": "aruco", + "marker_id": 143, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 692.0, + 529.0 + ], + [ + 726.0, + 559.0 + ], + [ + 722.0, + 591.0 + ], + [ + 687.0, + 560.0 + ] + ], + "center_px": [ + 706.75, + 559.75 + ], + "quality": { + "area_px": 1224.0, + "perimeter_px": 155.74748420715332, + "sharpness": { + "laplacian_var": 5719.832404488572 + }, + "contrast": { + "p05": 18.900000000000006, + "p95": 232.0, + "dynamic_range": 213.1, + "mean_gray": 107.60429082240763, + "std_gray": 83.83219108955754 + }, + "geometry": { + "distance_to_center_norm": 0.12999774515628815, + "distance_to_border_px": 369.0 + }, + "edge_ratio": 1.4889723772316514, + "edge_lengths_px": [ + 45.343135833740234, + 32.24903106689453, + 46.75468063354492, + 31.400636672973633 + ] + }, + "confidence": 0.5480289711734849 + }, + { + "observation_id": "e715d828-646d-4277-a196-ea69e376b504", + "type": "aruco", + "marker_id": 178, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 837.0, + 735.0 + ], + [ + 800.0, + 700.0 + ], + [ + 796.0, + 674.0 + ], + [ + 836.0, + 711.0 + ] + ], + "center_px": [ + 817.25, + 705.0 + ], + "quality": { + "area_px": 872.5, + "perimeter_px": 155.74657440185547, + "sharpness": { + "laplacian_var": 10571.399415157826 + }, + "contrast": { + "p05": 5.0, + "p95": 224.0, + "dynamic_range": 219.0, + "mean_gray": 100.07278481012658, + "std_gray": 81.42256408930969 + }, + "geometry": { + "distance_to_center_norm": 0.35803839564323425, + "distance_to_border_px": 225.0 + }, + "edge_ratio": 2.268387138781451, + "edge_lengths_px": [ + 50.93132781982422, + 26.305892944335938, + 54.488529205322266, + 24.020824432373047 + ] + }, + "confidence": 0.25642301383313726 + }, + { + "observation_id": "7a1fad13-a1b5-4e47-bb45-7ad44432ac4f", + "type": "aruco", + "marker_id": 102, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 255.0, + 195.0 + ], + [ + 262.0, + 233.0 + ], + [ + 223.0, + 233.0 + ], + [ + 217.0, + 194.0 + ] + ], + "center_px": [ + 239.25, + 213.75 + ], + "quality": { + "area_px": 1479.0, + "perimeter_px": 155.11135482788086, + "sharpness": { + "laplacian_var": 2775.8460914671746 + }, + "contrast": { + "p05": 2.0, + "p95": 152.0, + "dynamic_range": 150.0, + "mean_gray": 74.9119373776908, + "std_gray": 63.0417970439014 + }, + "geometry": { + "distance_to_center_norm": 0.6014171242713928, + "distance_to_border_px": 194.0 + }, + "edge_ratio": 1.0380311093284131, + "edge_lengths_px": [ + 38.63935852050781, + 39.0, + 39.458839416503906, + 38.01315689086914 + ] + }, + "confidence": 0.9498751926981491 + }, + { + "observation_id": "f65bd18d-1874-4d99-b143-e57bbcc2c823", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 601.0, + 536.0 + ], + [ + 643.0, + 519.0 + ], + [ + 636.0, + 550.0 + ], + [ + 593.0, + 564.0 + ] + ], + "center_px": [ + 618.25, + 542.25 + ], + "quality": { + "area_px": 1137.5, + "perimeter_px": 151.43265533447266, + "sharpness": { + "laplacian_var": 4291.8936304516965 + }, + "contrast": { + "p05": 27.0, + "p95": 249.0, + "dynamic_range": 222.0, + "mean_gray": 94.74201787994892, + "std_gray": 77.10423098822632 + }, + "geometry": { + "distance_to_center_norm": 0.08242539316415787, + "distance_to_border_px": 396.0 + }, + "edge_ratio": 1.5559532777376672, + "edge_lengths_px": [ + 45.31004333496094, + 31.78049659729004, + 45.221675872802734, + 29.120439529418945 + ] + }, + "confidence": 0.4873753885694682 + }, + { + "observation_id": "bb2bb546-0e5e-4e85-b91d-3da0ab589017", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 709.0, + 262.0 + ], + [ + 709.0, + 300.0 + ], + [ + 671.0, + 298.0 + ], + [ + 670.0, + 262.0 + ] + ], + "center_px": [ + 689.75, + 280.5 + ], + "quality": { + "area_px": 1424.0, + "perimeter_px": 151.0664825439453, + "sharpness": { + "laplacian_var": 1568.8316126735492 + }, + "contrast": { + "p05": 5.0, + "p95": 165.0, + "dynamic_range": 160.0, + "mean_gray": 71.5441906653426, + "std_gray": 66.8333071670644 + }, + "geometry": { + "distance_to_center_norm": 0.2570120096206665, + "distance_to_border_px": 262.0 + }, + "edge_ratio": 1.082915643803973, + "edge_lengths_px": [ + 38.0, + 38.05259704589844, + 36.013885498046875, + 39.0 + ] + }, + "confidence": 0.8766456914396368 + }, + { + "observation_id": "720e8a41-46a2-4988-856f-fb1c5ebf1aef", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 653.0, + 279.0 + ], + [ + 655.0, + 316.0 + ], + [ + 616.0, + 314.0 + ], + [ + 615.0, + 278.0 + ] + ], + "center_px": [ + 634.75, + 296.75 + ], + "quality": { + "area_px": 1403.0, + "perimeter_px": 150.13230514526367, + "sharpness": { + "laplacian_var": 1060.274899145299 + }, + "contrast": { + "p05": 4.0, + "p95": 153.0, + "dynamic_range": 149.0, + "mean_gray": 30.651282051282053, + "std_gray": 45.217303652898146 + }, + "geometry": { + "distance_to_center_norm": 0.229156494140625, + "distance_to_border_px": 278.0 + }, + "edge_ratio": 1.084338612816, + "edge_lengths_px": [ + 37.05401611328125, + 39.051246643066406, + 36.013885498046875, + 38.01315689086914 + ] + }, + "confidence": 0.8625841801430425 + }, + { + "observation_id": "1594c2b2-78c5-44ad-a8ee-b17510265214", + "type": "aruco", + "marker_id": 71, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 78.0, + 94.0 + ], + [ + 85.0, + 133.0 + ], + [ + 49.0, + 132.0 + ], + [ + 42.0, + 95.0 + ] + ], + "center_px": [ + 63.5, + 113.5 + ], + "quality": { + "area_px": 1368.0, + "perimeter_px": 149.3073387145996, + "sharpness": { + "laplacian_var": 1046.0259314253549 + }, + "contrast": { + "p05": 6.0, + "p95": 140.0, + "dynamic_range": 134.0, + "mean_gray": 77.94392523364486, + "std_gray": 54.720558611442414 + }, + "geometry": { + "distance_to_center_norm": 0.8539197444915771, + "distance_to_border_px": 42.0 + }, + "edge_ratio": 1.1002208069973554, + "edge_lengths_px": [ + 39.623226165771484, + 36.013885498046875, + 37.656341552734375, + 36.013885498046875 + ] + }, + "confidence": 0.6962965934908386 + }, + { + "observation_id": "67052f47-17b4-49bf-87ab-c13aecc898a9", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 272.0, + 255.0 + ], + [ + 278.0, + 292.0 + ], + [ + 241.0, + 291.0 + ], + [ + 234.0, + 255.0 + ] + ], + "center_px": [ + 256.25, + 273.25 + ], + "quality": { + "area_px": 1365.5, + "perimeter_px": 149.17108154296875, + "sharpness": { + "laplacian_var": 2254.237414730026 + }, + "contrast": { + "p05": 1.0, + "p95": 150.0, + "dynamic_range": 149.0, + "mean_gray": 44.623655913978496, + "std_gray": 56.687582600097656 + }, + "geometry": { + "distance_to_center_norm": 0.5448761582374573, + "distance_to_border_px": 234.0 + }, + "edge_ratio": 1.0361496211955732, + "edge_lengths_px": [ + 37.48332977294922, + 37.013511657714844, + 36.67424011230469, + 38.0 + ] + }, + "confidence": 0.8785732433921414 + }, + { + "observation_id": "c34a33e5-7876-46e0-87d6-16f0f03b78e7", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 652.0, + 440.0 + ], + [ + 699.0, + 443.0 + ], + [ + 694.0, + 469.0 + ], + [ + 647.0, + 465.0 + ] + ], + "center_px": [ + 673.0, + 454.25 + ], + "quality": { + "area_px": 1216.0, + "perimeter_px": 146.2370548248291, + "sharpness": { + "laplacian_var": 5444.007663334593 + }, + "contrast": { + "p05": 21.0, + "p95": 251.0, + "dynamic_range": 230.0, + "mean_gray": 122.99518652226233, + "std_gray": 90.71056562330136 + }, + "geometry": { + "distance_to_center_norm": 0.052322059869766235, + "distance_to_border_px": 440.0 + }, + "edge_ratio": 1.8501559164537382, + "edge_lengths_px": [ + 47.095645904541016, + 26.476404190063477, + 47.16990661621094, + 25.495098114013672 + ] + }, + "confidence": 0.4381612703325573 + }, + { + "observation_id": "7a8aebb0-1c1e-4ebe-b0bc-3188a09882a5", + "type": "aruco", + "marker_id": 146, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 707.0, + 448.0 + ], + [ + 738.0, + 474.0 + ], + [ + 736.0, + 502.0 + ], + [ + 704.0, + 473.0 + ] + ], + "center_px": [ + 721.25, + 474.25 + ], + "quality": { + "area_px": 903.5, + "perimeter_px": 136.89619827270508, + "sharpness": { + "laplacian_var": 5764.643533172747 + }, + "contrast": { + "p05": 16.8, + "p95": 224.19999999999993, + "dynamic_range": 207.39999999999992, + "mean_gray": 104.9708265802269, + "std_gray": 76.21293078132797 + }, + "geometry": { + "distance_to_center_norm": 0.10181651264429092, + "distance_to_border_px": 448.0 + }, + "edge_ratio": 1.7151210473868543, + "edge_lengths_px": [ + 40.45985794067383, + 28.07133674621582, + 43.185646057128906, + 25.179357528686523 + ] + }, + "confidence": 0.35118998408365637 + }, + { + "observation_id": "f95bf9b6-4116-407d-b8a8-a11e0ab0274f", + "type": "aruco", + "marker_id": 204, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 975.0, + 855.0 + ], + [ + 934.0, + 854.0 + ], + [ + 936.0, + 823.0 + ], + [ + 977.0, + 826.0 + ] + ], + "center_px": [ + 955.5, + 839.5 + ], + "quality": { + "area_px": 1234.0, + "perimeter_px": 142.2551326751709, + "sharpness": { + "laplacian_var": 2457.147435587634 + }, + "contrast": { + "p05": 2.0, + "p95": 152.0, + "dynamic_range": 150.0, + "mean_gray": 46.70035252643948, + "std_gray": 57.419320498445664 + }, + "geometry": { + "distance_to_center_norm": 0.5978875756263733, + "distance_to_border_px": 105.0 + }, + "edge_ratio": 1.414213488339957, + "edge_lengths_px": [ + 41.01219177246094, + 31.064449310302734, + 41.1096076965332, + 29.068883895874023 + ] + }, + "confidence": 0.5817132091084322 + }, + { + "observation_id": "a06088ae-bb0d-46a1-a1d6-d0ff5d20828d", + "type": "aruco", + "marker_id": 63, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 51.0, + 175.0 + ], + [ + 57.0, + 209.0 + ], + [ + 23.0, + 209.0 + ], + [ + 16.0, + 172.0 + ] + ], + "center_px": [ + 36.75, + 191.25 + ], + "quality": { + "area_px": 1215.0, + "perimeter_px": 141.31003189086914, + "sharpness": { + "laplacian_var": 734.2032604925425 + }, + "contrast": { + "p05": 4.0, + "p95": 134.0, + "dynamic_range": 130.0, + "mean_gray": 39.126642771804065, + "std_gray": 46.18608892162197 + }, + "geometry": { + "distance_to_center_norm": 0.8359941244125366, + "distance_to_border_px": 16.0 + }, + "edge_ratio": 1.107539457433364, + "edge_lengths_px": [ + 34.525352478027344, + 34.0, + 37.656341552734375, + 35.12833786010742 + ] + }, + "confidence": 0.23403229407345516 + }, + { + "observation_id": "71c22883-0b21-475f-a193-33611750326f", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 499.0, + 432.0 + ], + [ + 462.0, + 431.0 + ], + [ + 459.0, + 398.0 + ], + [ + 496.0, + 398.0 + ] + ], + "center_px": [ + 479.0, + 414.75 + ], + "quality": { + "area_px": 1238.0, + "perimeter_px": 141.28168869018555, + "sharpness": { + "laplacian_var": 2573.263061882555 + }, + "contrast": { + "p05": 5.0, + "p95": 157.0, + "dynamic_range": 152.0, + "mean_gray": 63.98088410991637, + "std_gray": 61.87878556437621 + }, + "geometry": { + "distance_to_center_norm": 0.2171497344970703, + "distance_to_border_px": 398.0 + }, + "edge_ratio": 1.1170153429057408, + "edge_lengths_px": [ + 37.013511657714844, + 33.13608169555664, + 37.0, + 34.13209533691406 + ] + }, + "confidence": 0.7388737662155631 + }, + { + "observation_id": "14058edd-ebc5-4c09-92dc-8b9bbd55e935", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 316.0, + 431.0 + ], + [ + 280.0, + 430.0 + ], + [ + 274.0, + 397.0 + ], + [ + 311.0, + 397.0 + ] + ], + "center_px": [ + 295.25, + 413.75 + ], + "quality": { + "area_px": 1220.0, + "perimeter_px": 140.92058563232422, + "sharpness": { + "laplacian_var": 2908.2198322029208 + }, + "contrast": { + "p05": 3.0, + "p95": 155.0, + "dynamic_range": 152.0, + "mean_gray": 56.56983930778739, + "std_gray": 61.47191570440707 + }, + "geometry": { + "distance_to_center_norm": 0.43882232904434204, + "distance_to_border_px": 274.0 + }, + "edge_ratio": 1.103126876227527, + "edge_lengths_px": [ + 36.013885498046875, + 33.541019439697266, + 37.0, + 34.36568069458008 + ] + }, + "confidence": 0.7372980849807326 + }, + { + "observation_id": "fefb1e0a-c538-4d72-b6a8-c018416e2a60", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1077.0, + 575.0 + ], + [ + 1038.0, + 575.0 + ], + [ + 1041.0, + 544.0 + ], + [ + 1080.0, + 545.0 + ] + ], + "center_px": [ + 1059.0, + 559.75 + ], + "quality": { + "area_px": 1191.0, + "perimeter_px": 139.3072681427002, + "sharpness": { + "laplacian_var": 2093.381204096989 + }, + "contrast": { + "p05": 2.0, + "p95": 145.0, + "dynamic_range": 143.0, + "mean_gray": 54.02244389027432, + "std_gray": 56.07340215235846 + }, + "geometry": { + "distance_to_center_norm": 0.5331525802612305, + "distance_to_border_px": 200.0 + }, + "edge_ratio": 1.293973437738817, + "edge_lengths_px": [ + 39.0, + 31.14482307434082, + 39.0128173828125, + 30.149627685546875 + ] + }, + "confidence": 0.6136138322804316 + }, + { + "observation_id": "f70ffe79-bb11-4d49-9da1-b41ac181f0de", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 470.0, + 555.0 + ], + [ + 435.0, + 554.0 + ], + [ + 432.0, + 523.0 + ], + [ + 468.0, + 524.0 + ] + ], + "center_px": [ + 451.25, + 539.0 + ], + "quality": { + "area_px": 1098.0, + "perimeter_px": 133.23744010925293, + "sharpness": { + "laplacian_var": 2945.181669333334 + }, + "contrast": { + "p05": 4.0, + "p95": 160.0, + "dynamic_range": 156.0, + "mean_gray": 77.60933333333334, + "std_gray": 64.8254737446802 + }, + "geometry": { + "distance_to_center_norm": 0.24719539284706116, + "distance_to_border_px": 405.0 + }, + "edge_ratio": 1.159327987382111, + "edge_lengths_px": [ + 35.0142822265625, + 31.14482307434082, + 36.013885498046875, + 31.064449310302734 + ] + }, + "confidence": 0.6314002663326845 + }, + { + "observation_id": "c5d12859-ba43-4c17-ba8a-626d87c6210b", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 182.0, + 549.0 + ], + [ + 148.0, + 547.0 + ], + [ + 142.0, + 516.0 + ], + [ + 177.0, + 518.0 + ] + ], + "center_px": [ + 162.25, + 532.5 + ], + "quality": { + "area_px": 1058.5, + "perimeter_px": 132.09181022644043, + "sharpness": { + "laplacian_var": 2300.2189528888885 + }, + "contrast": { + "p05": 1.0, + "p95": 140.0, + "dynamic_range": 139.0, + "mean_gray": 47.58266666666667, + "std_gray": 54.13558749001334 + }, + "geometry": { + "distance_to_center_norm": 0.6007824540138245, + "distance_to_border_px": 142.0 + }, + "edge_ratio": 1.116445342783386, + "edge_lengths_px": [ + 34.058773040771484, + 31.575305938720703, + 35.05709457397461, + 31.400636672973633 + ] + }, + "confidence": 0.6320655742155583 + }, + { + "observation_id": "5d3896c7-ff04-47f0-b461-2382b9da4f28", + "type": "aruco", + "marker_id": 74, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1105.0, + 721.0 + ], + [ + 1102.0, + 749.0 + ], + [ + 1067.0, + 748.0 + ], + [ + 1070.0, + 721.0 + ] + ], + "center_px": [ + 1086.0, + 734.75 + ], + "quality": { + "area_px": 964.0, + "perimeter_px": 125.3406925201416, + "sharpness": { + "laplacian_var": 1704.986402680449 + }, + "contrast": { + "p05": 1.0, + "p95": 128.0, + "dynamic_range": 127.0, + "mean_gray": 55.81112737920937, + "std_gray": 53.533840577862385 + }, + "geometry": { + "distance_to_center_norm": 0.6420348286628723, + "distance_to_border_px": 175.0 + }, + "edge_ratio": 1.288893566466747, + "edge_lengths_px": [ + 28.160255432128906, + 35.0142822265625, + 27.166154861450195, + 35.0 + ] + }, + "confidence": 0.49861888008985367 + }, + { + "observation_id": "22c698fd-462d-4538-8a9b-848818e7f889", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1209.0, + 782.0 + ], + [ + 1204.0, + 809.0 + ], + [ + 1169.0, + 807.0 + ], + [ + 1173.0, + 781.0 + ] + ], + "center_px": [ + 1188.75, + 794.75 + ], + "quality": { + "area_px": 947.5, + "perimeter_px": 124.83593368530273, + "sharpness": { + "laplacian_var": 1718.1883205070167 + }, + "contrast": { + "p05": 1.0, + "p95": 131.0, + "dynamic_range": 130.0, + "mean_gray": 43.0015197568389, + "std_gray": 49.91507983824856 + }, + "geometry": { + "distance_to_center_norm": 0.7907612323760986, + "distance_to_border_px": 71.0 + }, + "edge_ratio": 1.369042502159244, + "edge_lengths_px": [ + 27.459060668945312, + 35.05709457397461, + 26.305892944335938, + 36.013885498046875 + ] + }, + "confidence": 0.46139302882883954 + }, + { + "observation_id": "6512747a-7dda-4dd4-8530-f2d2487d1c95", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 676.0, + 334.0 + ], + [ + 717.0, + 332.0 + ], + [ + 716.0, + 353.0 + ], + [ + 673.0, + 353.0 + ] + ], + "center_px": [ + 695.5, + 343.0 + ], + "quality": { + "area_px": 838.0, + "perimeter_px": 124.30793190002441, + "sharpness": { + "laplacian_var": 2462.3646413534493 + }, + "contrast": { + "p05": 28.150000000000002, + "p95": 220.0, + "dynamic_range": 191.85, + "mean_gray": 92.49503311258277, + "std_gray": 70.12301141777154 + }, + "geometry": { + "distance_to_center_norm": 0.18476863205432892, + "distance_to_border_px": 332.0 + }, + "edge_ratio": 2.2354635617415815, + "edge_lengths_px": [ + 41.04875183105469, + 21.02379608154297, + 43.0, + 19.235383987426758 + ] + }, + "confidence": 0.24991088033276931 + }, + { + "observation_id": "507608b7-77df-4b61-ad22-16d4c668b655", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 740.0, + 334.0 + ], + [ + 781.0, + 334.0 + ], + [ + 780.0, + 353.0 + ], + [ + 737.0, + 354.0 + ] + ], + "center_px": [ + 759.5, + 343.75 + ], + "quality": { + "area_px": 818.0, + "perimeter_px": 123.26167488098145, + "sharpness": { + "laplacian_var": 2235.186403813226 + }, + "contrast": { + "p05": 28.0, + "p95": 195.0, + "dynamic_range": 167.0, + "mean_gray": 66.93367346938776, + "std_gray": 51.674123007037466 + }, + "geometry": { + "distance_to_center_norm": 0.22653749585151672, + "distance_to_border_px": 334.0 + }, + "edge_ratio": 2.2606408254020445, + "edge_lengths_px": [ + 41.0, + 19.02629852294922, + 43.011627197265625, + 20.2237491607666 + ] + }, + "confidence": 0.2412295342124277 + }, + { + "observation_id": "d4d05b26-5ef2-4fe5-a4d7-ec54c06b5c28", + "type": "aruco", + "marker_id": 75, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1272.0, + 789.0 + ], + [ + 1266.0, + 815.0 + ], + [ + 1232.0, + 814.0 + ], + [ + 1236.0, + 789.0 + ] + ], + "center_px": [ + 1251.5, + 801.75 + ], + "quality": { + "area_px": 895.0, + "perimeter_px": 122.0160083770752, + "sharpness": { + "laplacian_var": 1782.6540902400002 + }, + "contrast": { + "p05": 2.0, + "p95": 133.79999999999995, + "dynamic_range": 131.79999999999995, + "mean_gray": 67.8336, + "std_gray": 51.06461309987573 + }, + "geometry": { + "distance_to_center_norm": 0.8637267351150513, + "distance_to_border_px": 8.0 + }, + "edge_ratio": 1.4219145041793255, + "edge_lengths_px": [ + 26.68332862854004, + 34.01470184326172, + 25.317977905273438, + 36.0 + ] + }, + "confidence": 0.06713952659324364 + }, + { + "observation_id": "5f7202f0-f188-4838-8a79-80c53b0645f8", + "type": "aruco", + "marker_id": 52, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1094.0, + 795.0 + ], + [ + 1091.0, + 821.0 + ], + [ + 1057.0, + 820.0 + ], + [ + 1059.0, + 794.0 + ] + ], + "center_px": [ + 1075.25, + 807.5 + ], + "quality": { + "area_px": 899.5, + "perimeter_px": 121.2782974243164, + "sharpness": { + "laplacian_var": 1963.849959687579 + }, + "contrast": { + "p05": 1.0, + "p95": 132.0, + "dynamic_range": 131.0, + "mean_gray": 41.00952380952381, + "std_gray": 50.1893864524329 + }, + "geometry": { + "distance_to_center_norm": 0.680875837802887, + "distance_to_border_px": 139.0 + }, + "edge_ratio": 1.3427364644693096, + "edge_lengths_px": [ + 26.172504425048828, + 34.01470184326172, + 26.07680892944336, + 35.0142822265625 + ] + }, + "confidence": 0.44660041827617547 + }, + { + "observation_id": "4a72eb98-189b-4d5a-8912-4d85c0121980", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 436.0, + 720.0 + ], + [ + 439.0, + 746.0 + ], + [ + 407.0, + 746.0 + ], + [ + 404.0, + 720.0 + ] + ], + "center_px": [ + 421.5, + 733.0 + ], + "quality": { + "area_px": 832.0, + "perimeter_px": 116.34500885009766, + "sharpness": { + "laplacian_var": 2715.334455667789 + }, + "contrast": { + "p05": 1.0, + "p95": 142.0, + "dynamic_range": 141.0, + "mean_gray": 45.7962962962963, + "std_gray": 53.030966619759184 + }, + "geometry": { + "distance_to_center_norm": 0.41786521673202515, + "distance_to_border_px": 214.0 + }, + "edge_ratio": 1.2226571626586056, + "edge_lengths_px": [ + 26.172504425048828, + 32.0, + 26.172504425048828, + 32.0 + ] + }, + "confidence": 0.453656743367513 + }, + { + "observation_id": "6f9dc40a-e579-493b-ba3b-7f03f14accba", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 288.0, + 710.0 + ], + [ + 292.0, + 736.0 + ], + [ + 260.0, + 735.0 + ], + [ + 256.0, + 710.0 + ] + ], + "center_px": [ + 274.0, + 722.75 + ], + "quality": { + "area_px": 814.0, + "perimeter_px": 115.63949203491211, + "sharpness": { + "laplacian_var": 2775.001339334986 + }, + "contrast": { + "p05": 1.0, + "p95": 136.0, + "dynamic_range": 135.0, + "mean_gray": 56.21761658031088, + "std_gray": 54.61136963225085 + }, + "geometry": { + "distance_to_center_norm": 0.5489814281463623, + "distance_to_border_px": 224.0 + }, + "edge_ratio": 1.2645410034359126, + "edge_lengths_px": [ + 26.305892944335938, + 32.015621185302734, + 25.317977905273438, + 32.0 + ] + }, + "confidence": 0.42914121819077033 + }, + { + "observation_id": "23d668c6-3d77-4a46-8612-07ecc1e6e0bf", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 487.0, + 739.0 + ], + [ + 490.0, + 764.0 + ], + [ + 458.0, + 764.0 + ], + [ + 455.0, + 738.0 + ] + ], + "center_px": [ + 472.5, + 751.25 + ], + "quality": { + "area_px": 814.5, + "perimeter_px": 115.36748313903809, + "sharpness": { + "laplacian_var": 3012.392006185549 + }, + "contrast": { + "p05": 1.0, + "p95": 144.0, + "dynamic_range": 143.0, + "mean_gray": 64.94320137693632, + "std_gray": 58.58702172587506 + }, + "geometry": { + "distance_to_center_norm": 0.3984987735748291, + "distance_to_border_px": 196.0 + }, + "edge_ratio": 1.271502704103063, + "edge_lengths_px": [ + 25.179357528686523, + 32.0, + 26.172504425048828, + 32.015621185302734 + ] + }, + "confidence": 0.42705375163400877 + }, + { + "observation_id": "5d6d5022-7939-4580-ac4c-8f0947a57e7c", + "type": "aruco", + "marker_id": 56, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 536.0, + 723.0 + ], + [ + 538.0, + 749.0 + ], + [ + 507.0, + 748.0 + ], + [ + 504.0, + 722.0 + ] + ], + "center_px": [ + 521.25, + 735.5 + ], + "quality": { + "area_px": 816.5, + "perimeter_px": 115.28105926513672, + "sharpness": { + "laplacian_var": 2145.6685679196044 + }, + "contrast": { + "p05": 1.0, + "p95": 135.0, + "dynamic_range": 134.0, + "mean_gray": 35.29896907216495, + "std_gray": 47.06082887133909 + }, + "geometry": { + "distance_to_center_norm": 0.3521847128868103, + "distance_to_border_px": 211.0 + }, + "edge_ratio": 1.2277430598171792, + "edge_lengths_px": [ + 26.07680892944336, + 31.016124725341797, + 26.172504425048828, + 32.015621185302734 + ] + }, + "confidence": 0.4433609532391809 + }, + { + "observation_id": "c22ab21c-40e0-42c8-9eb3-5e24b05dd2c6", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 556.0, + 771.0 + ], + [ + 558.0, + 797.0 + ], + [ + 526.0, + 795.0 + ], + [ + 524.0, + 770.0 + ] + ], + "center_px": [ + 541.0, + 783.25 + ], + "quality": { + "area_px": 813.0, + "perimeter_px": 115.2347412109375, + "sharpness": { + "laplacian_var": 3618.7627848937946 + }, + "contrast": { + "p05": 2.0, + "p95": 147.0, + "dynamic_range": 145.0, + "mean_gray": 70.66256590509666, + "std_gray": 59.5283927863161 + }, + "geometry": { + "distance_to_center_norm": 0.3987511098384857, + "distance_to_border_px": 163.0 + }, + "edge_ratio": 1.2784131751919299, + "edge_lengths_px": [ + 26.07680892944336, + 32.06243896484375, + 25.079872131347656, + 32.015621185302734 + ] + }, + "confidence": 0.4239630899600427 + }, + { + "observation_id": "6dd065f4-8867-4089-ae29-e20c3c18e1b3", + "type": "aruco", + "marker_id": 243, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 873.0, + 347.0 + ], + [ + 830.0, + 347.0 + ], + [ + 830.0, + 332.0 + ], + [ + 872.0, + 333.0 + ] + ], + "center_px": [ + 851.25, + 339.75 + ], + "quality": { + "area_px": 616.0, + "perimeter_px": 114.04757022857666, + "sharpness": { + "laplacian_var": 4721.487470459354 + }, + "contrast": { + "p05": 46.0, + "p95": 210.5, + "dynamic_range": 164.5, + "mean_gray": 107.19489559164734, + "std_gray": 61.54596925269436 + }, + "geometry": { + "distance_to_center_norm": 0.3169597387313843, + "distance_to_border_px": 332.0 + }, + "edge_ratio": 3.06362325305343, + "edge_lengths_px": [ + 43.0, + 15.0, + 42.01190185546875, + 14.03566837310791 + ] + }, + "confidence": 0.1340460731447205 + }, + { + "observation_id": "40d76537-7875-4dc8-ad10-a1422ed718a4", + "type": "aruco", + "marker_id": 101, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1049.0, + 889.0 + ], + [ + 1046.0, + 914.0 + ], + [ + 1014.0, + 911.0 + ], + [ + 1016.0, + 888.0 + ] + ], + "center_px": [ + 1031.25, + 900.5 + ], + "quality": { + "area_px": 785.0, + "perimeter_px": 113.4216136932373, + "sharpness": { + "laplacian_var": 2593.7939230704487 + }, + "contrast": { + "p05": 1.0, + "p95": 134.0, + "dynamic_range": 133.0, + "mean_gray": 55.89908256880734, + "std_gray": 52.79271303520056 + }, + "geometry": { + "distance_to_center_norm": 0.7179580926895142, + "distance_to_border_px": 46.0 + }, + "edge_ratio": 1.4300448574238476, + "edge_lengths_px": [ + 25.179357528686523, + 32.140316009521484, + 23.0867919921875, + 33.0151481628418 + ] + }, + "confidence": 0.3366794154513476 + }, + { + "observation_id": "750b50a4-0cce-401d-b19e-47b9517c207f", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 442.0, + 765.0 + ], + [ + 444.0, + 791.0 + ], + [ + 413.0, + 789.0 + ], + [ + 410.0, + 765.0 + ] + ], + "center_px": [ + 427.25, + 777.5 + ], + "quality": { + "area_px": 785.0, + "perimeter_px": 113.32803153991699, + "sharpness": { + "laplacian_var": 2887.4481292102914 + }, + "contrast": { + "p05": 1.0, + "p95": 142.0, + "dynamic_range": 141.0, + "mean_gray": 41.747747747747745, + "std_gray": 51.80807764568932 + }, + "geometry": { + "distance_to_center_norm": 0.4571802616119385, + "distance_to_border_px": 169.0 + }, + "edge_ratio": 1.3230371659279534, + "edge_lengths_px": [ + 26.07680892944336, + 31.064449310302734, + 24.1867733001709, + 32.0 + ] + }, + "confidence": 0.3955545216798782 + }, + { + "observation_id": "352c9330-bcb5-47c4-830f-19d27b95d19f", + "type": "aruco", + "marker_id": 100, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 131.0, + 711.0 + ], + [ + 138.0, + 737.0 + ], + [ + 109.0, + 736.0 + ], + [ + 102.0, + 710.0 + ] + ], + "center_px": [ + 120.0, + 723.5 + ], + "quality": { + "area_px": 747.0, + "perimeter_px": 111.8861198425293, + "sharpness": { + "laplacian_var": 1553.097536002114 + }, + "contrast": { + "p05": 1.0, + "p95": 126.0, + "dynamic_range": 125.0, + "mean_gray": 60.93869731800766, + "std_gray": 50.228101122422714 + }, + "geometry": { + "distance_to_center_norm": 0.7177354693412781, + "distance_to_border_px": 102.0 + }, + "edge_ratio": 1.0776731497300467, + "edge_lengths_px": [ + 26.925823211669922, + 29.017236709594727, + 26.925823211669922, + 29.017236709594727 + ] + }, + "confidence": 0.4621067158671878 + }, + { + "observation_id": "68981013-4d07-4ede-936c-f70c4bd43fc2", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 911.0, + 879.0 + ], + [ + 910.0, + 903.0 + ], + [ + 878.0, + 901.0 + ], + [ + 880.0, + 877.0 + ] + ], + "center_px": [ + 894.75, + 890.0 + ], + "quality": { + "area_px": 759.0, + "perimeter_px": 111.23090171813965, + "sharpness": { + "laplacian_var": 2278.9811805463805 + }, + "contrast": { + "p05": 1.0, + "p95": 131.0, + "dynamic_range": 130.0, + "mean_gray": 56.00383141762452, + "std_gray": 53.78828926400793 + }, + "geometry": { + "distance_to_center_norm": 0.6033727526664734, + "distance_to_border_px": 57.0 + }, + "edge_ratio": 1.3347767914923419, + "edge_lengths_px": [ + 24.020824432373047, + 32.06243896484375, + 24.083189010620117, + 31.064449310302734 + ] + }, + "confidence": 0.37908960001789416 + }, + { + "observation_id": "d8e771dc-e15d-4352-a899-3461b4c8e581", + "type": "aruco", + "marker_id": 60, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 628.0, + 849.0 + ], + [ + 629.0, + 874.0 + ], + [ + 598.0, + 872.0 + ], + [ + 597.0, + 848.0 + ] + ], + "center_px": [ + 613.0, + 860.75 + ], + "quality": { + "area_px": 758.0, + "perimeter_px": 111.12139129638672, + "sharpness": { + "laplacian_var": 2698.6294259157607 + }, + "contrast": { + "p05": 3.0, + "p95": 147.0, + "dynamic_range": 144.0, + "mean_gray": 78.33781190019194, + "std_gray": 59.23000071625473 + }, + "geometry": { + "distance_to_center_norm": 0.477132648229599, + "distance_to_border_px": 86.0 + }, + "edge_ratio": 1.2932299387874857, + "edge_lengths_px": [ + 25.01999282836914, + 31.064449310302734, + 24.020824432373047, + 31.016124725341797 + ] + }, + "confidence": 0.3907528879258137 + }, + { + "observation_id": "aeb39231-b9ee-43c2-846c-3ada1a4fa88d", + "type": "aruco", + "marker_id": 67, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 512.0, + 826.0 + ], + [ + 514.0, + 851.0 + ], + [ + 484.0, + 849.0 + ], + [ + 481.0, + 825.0 + ] + ], + "center_px": [ + 497.75, + 837.75 + ], + "quality": { + "area_px": 743.5, + "perimeter_px": 110.34936332702637, + "sharpness": { + "laplacian_var": 3135.412777366864 + }, + "contrast": { + "p05": 1.0, + "p95": 138.04999999999995, + "dynamic_range": 137.04999999999995, + "mean_gray": 42.19230769230769, + "std_gray": 49.72537599406845 + }, + "geometry": { + "distance_to_center_norm": 0.4812420904636383, + "distance_to_border_px": 109.0 + }, + "edge_ratio": 1.2823589298338793, + "edge_lengths_px": [ + 25.079872131347656, + 30.066593170166016, + 24.1867733001709, + 31.016124725341797 + ] + }, + "confidence": 0.3865272468846743 + }, + { + "observation_id": "c6b8d663-c6fd-4138-b37b-ab283b9656ec", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 906.0, + 915.0 + ], + [ + 904.0, + 938.0 + ], + [ + 873.0, + 937.0 + ], + [ + 874.0, + 913.0 + ] + ], + "center_px": [ + 889.25, + 925.75 + ], + "quality": { + "area_px": 742.5, + "perimeter_px": 110.1861801147461, + "sharpness": { + "laplacian_var": 3269.122089230781 + }, + "contrast": { + "p05": 1.0, + "p95": 135.0, + "dynamic_range": 134.0, + "mean_gray": 61.650294695481335, + "std_gray": 52.32424510348805 + }, + "geometry": { + "distance_to_center_norm": 0.6383800506591797, + "distance_to_border_px": 22.0 + }, + "edge_ratio": 1.3887784398843106, + "edge_lengths_px": [ + 23.0867919921875, + 31.016124725341797, + 24.020824432373047, + 32.06243896484375 + ] + }, + "confidence": 0.15682847151496923 + }, + { + "observation_id": "93bdd336-f460-41f4-b10b-7a049245fbda", + "type": "aruco", + "marker_id": 94, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 39.0, + 708.0 + ], + [ + 47.0, + 734.0 + ], + [ + 19.0, + 732.0 + ], + [ + 11.0, + 708.0 + ] + ], + "center_px": [ + 29.0, + 720.5 + ], + "quality": { + "area_px": 692.0, + "perimeter_px": 108.57250022888184, + "sharpness": { + "laplacian_var": 663.3090496650068 + }, + "contrast": { + "p05": 4.0, + "p95": 118.0, + "dynamic_range": 114.0, + "mean_gray": 45.0082135523614, + "std_gray": 39.738156505239246 + }, + "geometry": { + "distance_to_center_norm": 0.8207858800888062, + "distance_to_border_px": 11.0 + }, + "edge_ratio": 1.1096170000891163, + "edge_lengths_px": [ + 27.20294189453125, + 28.07133674621582, + 25.298221588134766, + 28.0 + ] + }, + "confidence": 0.09146699566173024 + }, + { + "observation_id": "cb348b67-4164-4e74-84d7-a7329cc37e60", + "type": "aruco", + "marker_id": 70, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 415.0, + 855.0 + ], + [ + 418.0, + 879.0 + ], + [ + 388.0, + 878.0 + ], + [ + 384.0, + 855.0 + ] + ], + "center_px": [ + 401.25, + 866.75 + ], + "quality": { + "area_px": 715.0, + "perimeter_px": 108.54867172241211, + "sharpness": { + "laplacian_var": 2409.045395107061 + }, + "contrast": { + "p05": 1.0, + "p95": 143.0, + "dynamic_range": 142.0, + "mean_gray": 58.78269617706238, + "std_gray": 56.36558825748133 + }, + "geometry": { + "distance_to_center_norm": 0.5681344866752625, + "distance_to_border_px": 81.0 + }, + "edge_ratio": 1.3278940608239123, + "edge_lengths_px": [ + 24.1867733001709, + 30.01666259765625, + 23.34523582458496, + 31.0 + ] + }, + "confidence": 0.35896437880813437 + }, + { + "observation_id": "8c914b3d-bf2c-4262-978b-9b0e6ed923d9", + "type": "aruco", + "marker_id": 104, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 119.0, + 781.0 + ], + [ + 125.0, + 805.0 + ], + [ + 96.0, + 803.0 + ], + [ + 90.0, + 779.0 + ] + ], + "center_px": [ + 107.5, + 792.0 + ], + "quality": { + "area_px": 684.0, + "perimeter_px": 107.61503601074219, + "sharpness": { + "laplacian_var": 1123.2334495246716 + }, + "contrast": { + "p05": 3.0, + "p95": 129.54999999999995, + "dynamic_range": 126.54999999999995, + "mean_gray": 71.0, + "std_gray": 48.64237711156631 + }, + "geometry": { + "distance_to_center_norm": 0.771463930606842, + "distance_to_border_px": 90.0 + }, + "edge_ratio": 1.1750399705663048, + "edge_lengths_px": [ + 24.73863410949707, + 29.068883895874023, + 24.73863410949707, + 29.068883895874023 + ] + }, + "confidence": 0.3880719051456888 + }, + { + "observation_id": "29e6ec09-90b7-4583-a9ac-fbfc1e9fa4dd", + "type": "aruco", + "marker_id": 98, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 450.0, + 871.0 + ], + [ + 453.0, + 895.0 + ], + [ + 423.0, + 893.0 + ], + [ + 420.0, + 870.0 + ] + ], + "center_px": [ + 436.5, + 882.25 + ], + "quality": { + "area_px": 700.5, + "perimeter_px": 107.4648551940918, + "sharpness": { + "laplacian_var": 2927.7995867768595 + }, + "contrast": { + "p05": 1.0, + "p95": 141.0, + "dynamic_range": 140.0, + "mean_gray": 55.78099173553719, + "std_gray": 55.3188500953876 + }, + "geometry": { + "distance_to_center_norm": 0.563495397567749, + "distance_to_border_px": 65.0 + }, + "edge_ratio": 1.2962629254778213, + "edge_lengths_px": [ + 24.1867733001709, + 30.066593170166016, + 23.194826126098633, + 30.01666259765625 + ] + }, + "confidence": 0.36026641726859315 + }, + { + "observation_id": "1e41b60b-2d7a-4eee-aaed-dd26322b6655", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 365.0, + 869.0 + ], + [ + 368.0, + 893.0 + ], + [ + 339.0, + 891.0 + ], + [ + 335.0, + 868.0 + ] + ], + "center_px": [ + 351.75, + 880.25 + ], + "quality": { + "area_px": 688.0, + "perimeter_px": 106.61755561828613, + "sharpness": { + "laplacian_var": 2398.7709377868796 + }, + "contrast": { + "p05": 2.0, + "p95": 139.25, + "dynamic_range": 137.25, + "mean_gray": 61.10504201680672, + "std_gray": 56.09035230444617 + }, + "geometry": { + "distance_to_center_norm": 0.6165530681610107, + "distance_to_border_px": 67.0 + }, + "edge_ratio": 1.285772515780097, + "edge_lengths_px": [ + 24.1867733001709, + 29.068883895874023, + 23.34523582458496, + 30.01666259765625 + ] + }, + "confidence": 0.3567245846660417 + }, + { + "observation_id": "2de720a4-0f6b-4051-b408-472e57ba300e", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 267.0, + 876.0 + ], + [ + 271.0, + 899.0 + ], + [ + 242.0, + 898.0 + ], + [ + 237.0, + 875.0 + ] + ], + "center_px": [ + 254.25, + 887.0 + ], + "quality": { + "area_px": 674.0, + "perimeter_px": 105.91633987426758, + "sharpness": { + "laplacian_var": 1844.0413941736028 + }, + "contrast": { + "p05": 2.0, + "p95": 134.0, + "dynamic_range": 132.0, + "mean_gray": 53.12931034482759, + "std_gray": 53.11848826986796 + }, + "geometry": { + "distance_to_center_norm": 0.7009503245353699, + "distance_to_border_px": 61.0 + }, + "edge_ratio": 1.285772515780097, + "edge_lengths_px": [ + 23.34523582458496, + 29.017236709594727, + 23.53720474243164, + 30.01666259765625 + ] + }, + "confidence": 0.3494656541641164 + }, + { + "observation_id": "5b04311d-381c-4371-a560-5afe53704639", + "type": "aruco", + "marker_id": 88, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 211.0, + 862.0 + ], + [ + 217.0, + 885.0 + ], + [ + 188.0, + 883.0 + ], + [ + 183.0, + 860.0 + ] + ], + "center_px": [ + 199.75, + 872.5 + ], + "quality": { + "area_px": 644.5, + "perimeter_px": 104.44715309143066, + "sharpness": { + "laplacian_var": 1369.3750399279465 + }, + "contrast": { + "p05": 3.0, + "p95": 133.2, + "dynamic_range": 130.2, + "mean_gray": 61.98169336384439, + "std_gray": 51.49774724687701 + }, + "geometry": { + "distance_to_center_norm": 0.737263023853302, + "distance_to_border_px": 75.0 + }, + "edge_ratio": 1.235018525520584, + "edge_lengths_px": [ + 23.76972770690918, + 29.068883895874023, + 23.53720474243164, + 28.07133674621582 + ] + }, + "confidence": 0.347903013426907 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 223.0, + 510.0 + ], + [ + 266.0, + 511.0 + ], + [ + 272.0, + 548.0 + ], + [ + 230.0, + 547.0 + ] + ], + "center_px": [ + 247.75, + 529.0 + ], + "area_px": 1566.0 + }, + { + "image_points_px": [ + [ + 735.0, + 594.0 + ], + [ + 744.0, + 577.0 + ], + [ + 792.0, + 578.0 + ], + [ + 790.0, + 600.0 + ] + ], + "center_px": [ + 765.25, + 587.25 + ], + "area_px": 1023.5 + }, + { + "image_points_px": [ + [ + 1022.0, + 746.0 + ], + [ + 1046.0, + 747.0 + ], + [ + 1042.0, + 775.0 + ], + [ + 1018.0, + 774.0 + ] + ], + "center_px": [ + 1032.0, + 760.5 + ], + "area_px": 676.0 + }, + { + "image_points_px": [ + [ + 1020.0, + 688.0 + ], + [ + 1030.0, + 705.0 + ], + [ + 1029.0, + 726.0 + ], + [ + 1023.0, + 737.0 + ] + ], + "center_px": [ + 1025.5, + 714.0 + ], + "area_px": 277.0 + }, + { + "image_points_px": [ + [ + 953.0, + 554.0 + ], + [ + 991.0, + 553.0 + ], + [ + 993.0, + 565.0 + ], + [ + 953.0, + 563.0 + ] + ], + "center_px": [ + 972.5, + 558.75 + ], + "area_px": 409.0 + }, + { + "image_points_px": [ + [ + 639.0, + 810.0 + ], + [ + 647.0, + 803.0 + ], + [ + 675.0, + 828.0 + ], + [ + 665.0, + 834.0 + ] + ], + "center_px": [ + 656.5, + 818.75 + ], + "area_px": 396.0 + }, + { + "image_points_px": [ + [ + 1159.0, + 705.0 + ], + [ + 1163.0, + 699.0 + ], + [ + 1202.0, + 702.0 + ], + [ + 1167.0, + 709.0 + ] + ], + "center_px": [ + 1172.75, + 703.75 + ], + "area_px": 221.0 + }, + { + "image_points_px": [ + [ + 690.0, + 871.0 + ], + [ + 721.0, + 876.0 + ], + [ + 721.0, + 887.0 + ], + [ + 690.0, + 886.0 + ] + ], + "center_px": [ + 705.5, + 880.0 + ], + "area_px": 403.0 + }, + { + "image_points_px": [ + [ + 430.0, + 623.0 + ], + [ + 425.0, + 628.0 + ], + [ + 388.0, + 628.0 + ], + [ + 413.0, + 621.0 + ] + ], + "center_px": [ + 414.0, + 625.0 + ], + "area_px": 177.0 + }, + { + "image_points_px": [ + [ + 676.0, + 849.0 + ], + [ + 690.0, + 837.0 + ], + [ + 697.0, + 839.0 + ], + [ + 707.0, + 849.0 + ] + ], + "center_px": [ + 692.5, + 843.5 + ], + "area_px": 211.0 + }, + { + "image_points_px": [ + [ + 693.0, + 371.0 + ], + [ + 689.0, + 399.0 + ], + [ + 683.0, + 400.0 + ], + [ + 687.0, + 374.0 + ] + ], + "center_px": [ + 688.0, + 386.0 + ], + "area_px": 154.0 + }, + { + "image_points_px": [ + [ + 679.0, + 372.0 + ], + [ + 675.0, + 397.0 + ], + [ + 668.0, + 400.0 + ], + [ + 673.0, + 375.0 + ] + ], + "center_px": [ + 673.75, + 386.0 + ], + "area_px": 149.0 + }, + { + "image_points_px": [ + [ + 933.0, + 355.0 + ], + [ + 945.0, + 381.0 + ], + [ + 938.0, + 383.0 + ], + [ + 932.0, + 368.0 + ] + ], + "center_px": [ + 937.0, + 371.75 + ], + "area_px": 149.5 + }, + { + "image_points_px": [ + [ + 621.0, + 283.0 + ], + [ + 624.0, + 296.0 + ], + [ + 623.0, + 310.0 + ], + [ + 621.0, + 308.0 + ] + ], + "center_px": [ + 622.25, + 299.25 + ], + "area_px": 52.5 + }, + { + "image_points_px": [ + [ + 586.0, + 766.0 + ], + [ + 601.0, + 779.0 + ], + [ + 587.0, + 779.0 + ], + [ + 585.0, + 777.0 + ] + ], + "center_px": [ + 589.75, + 775.25 + ], + "area_px": 103.0 + }, + { + "image_points_px": [ + [ + 695.0, + 548.0 + ], + [ + 701.0, + 555.0 + ], + [ + 699.0, + 567.0 + ], + [ + 692.0, + 560.0 + ] + ], + "center_px": [ + 696.75, + 557.5 + ], + "area_px": 95.5 + }, + { + "image_points_px": [ + [ + 422.0, + 782.0 + ], + [ + 438.0, + 782.0 + ], + [ + 440.0, + 787.0 + ], + [ + 423.0, + 787.0 + ] + ], + "center_px": [ + 430.75, + 784.5 + ], + "area_px": 82.5 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam1_camera_pose.json b/data/homing/20260625_172504/cam1_camera_pose.json new file mode 100644 index 0000000..39346bf --- /dev/null +++ b/data/homing/20260625_172504/cam1_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam1_debug.jpg b/data/homing/20260625_172504/cam1_debug.jpg new file mode 100644 index 0000000..25bd6ba Binary files /dev/null and b/data/homing/20260625_172504/cam1_debug.jpg differ diff --git a/data/homing/20260625_172504/cam2.jpg b/data/homing/20260625_172504/cam2.jpg new file mode 100644 index 0000000..bfda81d Binary files /dev/null and b/data/homing/20260625_172504/cam2.jpg differ diff --git a/data/homing/20260625_172504/cam2_aruco_detection.json b/data/homing/20260625_172504/cam2_aruco_detection.json new file mode 100644 index 0000000..8959d67 --- /dev/null +++ b/data/homing/20260625_172504/cam2_aruco_detection.json @@ -0,0 +1,2521 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:25:15Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam2", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam2_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_172504/cam2.jpg", + "image_sha256": "97a05e5aef2ea55e1a74898212d7a8c341c75acbeb053427c5bada4ebd0f8ada", + "width_px": 1920, + "height_px": 1080 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 30, + "num_rejected_candidates": 34 + }, + "detections": [ + { + "observation_id": "97aef1d7-664f-4198-a123-e221c7dfee09", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1082.0, + 232.0 + ], + [ + 1050.0, + 250.0 + ], + [ + 1034.0, + 209.0 + ], + [ + 1064.0, + 191.0 + ] + ], + "center_px": [ + 1057.5, + 220.5 + ], + "quality": { + "area_px": 1577.0, + "perimeter_px": 160.48941802978516, + "sharpness": { + "laplacian_var": 2322.090096756453 + }, + "contrast": { + "p05": 68.0, + "p95": 239.0, + "dynamic_range": 171.0, + "mean_gray": 118.63494967978042, + "std_gray": 64.08518279674097 + }, + "geometry": { + "distance_to_center_norm": 0.3032771050930023, + "distance_to_border_px": 191.0 + }, + "edge_ratio": 1.279871847963875, + "edge_lengths_px": [ + 36.715118408203125, + 44.0113639831543, + 34.98571014404297, + 44.777225494384766 + ] + }, + "confidence": 0.7813282256273406 + }, + { + "observation_id": "fdd7fac0-5c2a-47b7-b27b-7b982b9b3e99", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 914.0, + 1040.0 + ], + [ + 940.0, + 1012.0 + ], + [ + 972.0, + 1038.0 + ], + [ + 947.0, + 1066.0 + ] + ], + "center_px": [ + 943.25, + 1039.0 + ], + "quality": { + "area_px": 1573.0, + "perimeter_px": 158.98955154418945, + "sharpness": { + "laplacian_var": 252.8919914918876 + }, + "contrast": { + "p05": 19.0, + "p95": 152.0, + "dynamic_range": 133.0, + "mean_gray": 102.94924812030075, + "std_gray": 47.528357773730825 + }, + "geometry": { + "distance_to_center_norm": 0.4532928466796875, + "distance_to_border_px": 14.0 + }, + "edge_ratio": 1.1192235940482562, + "edge_lengths_px": [ + 38.20994567871094, + 41.231056213378906, + 37.53664779663086, + 42.01190185546875 + ] + }, + "confidence": 0.25017342512163626 + }, + { + "observation_id": "4a409976-3453-462b-9c6a-37a8479171c5", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1235.0, + 1044.0 + ], + [ + 1255.0, + 1015.0 + ], + [ + 1289.0, + 1040.0 + ], + [ + 1270.0, + 1068.0 + ] + ], + "center_px": [ + 1262.25, + 1041.75 + ], + "quality": { + "area_px": 1461.0, + "perimeter_px": 153.7057647705078, + "sharpness": { + "laplacian_var": 243.06271909769853 + }, + "contrast": { + "p05": 10.0, + "p95": 138.0, + "dynamic_range": 128.0, + "mean_gray": 52.05144032921811, + "std_gray": 46.96200009218051 + }, + "geometry": { + "distance_to_center_norm": 0.531801164150238, + "distance_to_border_px": 12.0 + }, + "edge_ratio": 1.2541633743458152, + "edge_lengths_px": [ + 35.22782897949219, + 42.20189666748047, + 33.83784866333008, + 42.43819046020508 + ] + }, + "confidence": 0.18638720024967376 + }, + { + "observation_id": "50979cf8-bc58-4bef-b75d-d4ac49ebeb0f", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1027.0, + 500.0 + ], + [ + 987.0, + 490.0 + ], + [ + 994.0, + 456.0 + ], + [ + 1036.0, + 468.0 + ] + ], + "center_px": [ + 1011.0, + 478.5 + ], + "quality": { + "area_px": 1441.0, + "perimeter_px": 152.86636352539062, + "sharpness": { + "laplacian_var": 995.8686640217322 + }, + "contrast": { + "p05": 33.0, + "p95": 224.0, + "dynamic_range": 191.0, + "mean_gray": 86.59058341862846, + "std_gray": 73.35441533470684 + }, + "geometry": { + "distance_to_center_norm": 0.07253618538379669, + "distance_to_border_px": 456.0 + }, + "edge_ratio": 1.3140384458697256, + "edge_lengths_px": [ + 41.231056213378906, + 34.71310806274414, + 43.680660247802734, + 33.241539001464844 + ] + }, + "confidence": 0.7310795735742938 + }, + { + "observation_id": "6a77a4ae-f0ae-4a82-9739-3b3ecec68402", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 992.0, + 1009.0 + ], + [ + 1015.0, + 982.0 + ], + [ + 1047.0, + 1005.0 + ], + [ + 1024.0, + 1033.0 + ] + ], + "center_px": [ + 1019.5, + 1007.25 + ], + "quality": { + "area_px": 1420.5, + "perimeter_px": 151.11175537109375, + "sharpness": { + "laplacian_var": 182.86299117247623 + }, + "contrast": { + "p05": 12.0, + "p95": 128.0, + "dynamic_range": 116.0, + "mean_gray": 35.958510638297874, + "std_gray": 37.97708410253133 + }, + "geometry": { + "distance_to_center_norm": 0.4276377558708191, + "distance_to_border_px": 47.0 + }, + "edge_ratio": 1.127767737769393, + "edge_lengths_px": [ + 35.46829605102539, + 39.408119201660156, + 36.2353401184082, + 40.0 + ] + }, + "confidence": 0.7893291944675445 + }, + { + "observation_id": "128df4ff-f769-4522-b273-107200fe0eb6", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1010.0, + 440.0 + ], + [ + 978.0, + 420.0 + ], + [ + 987.0, + 384.0 + ], + [ + 1018.0, + 405.0 + ] + ], + "center_px": [ + 998.25, + 412.25 + ], + "quality": { + "area_px": 1292.5, + "perimeter_px": 148.18981170654297, + "sharpness": { + "laplacian_var": 1922.080516333841 + }, + "contrast": { + "p05": 35.0, + "p95": 228.0, + "dynamic_range": 193.0, + "mean_gray": 100.79458239277652, + "std_gray": 74.84162822936172 + }, + "geometry": { + "distance_to_center_norm": 0.12107035517692566, + "distance_to_border_px": 384.0 + }, + "edge_ratio": 1.0510624955440924, + "edge_lengths_px": [ + 37.735923767089844, + 37.10795211791992, + 37.44329071044922, + 35.902645111083984 + ] + }, + "confidence": 0.8198053591671701 + }, + { + "observation_id": "fa598b86-5e71-4d45-bc31-223b34c8641d", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 700.0, + 892.0 + ], + [ + 729.0, + 870.0 + ], + [ + 754.0, + 892.0 + ], + [ + 724.0, + 915.0 + ] + ], + "center_px": [ + 726.75, + 892.25 + ], + "quality": { + "area_px": 1215.0, + "perimeter_px": 140.74585723876953, + "sharpness": { + "laplacian_var": 242.71775563725052 + }, + "contrast": { + "p05": 12.0, + "p95": 139.0, + "dynamic_range": 127.0, + "mean_gray": 45.99148418491484, + "std_gray": 44.68150251659249 + }, + "geometry": { + "distance_to_center_norm": 0.3835618495941162, + "distance_to_border_px": 165.0 + }, + "edge_ratio": 1.1371951338467559, + "edge_lengths_px": [ + 36.400550842285156, + 33.30165100097656, + 37.80211639404297, + 33.241539001464844 + ] + }, + "confidence": 0.712278812924601 + }, + { + "observation_id": "7ab88597-b8e1-4cee-891a-b1eba67deea3", + "type": "aruco", + "marker_id": 93, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1871.0, + 974.0 + ], + [ + 1880.0, + 948.0 + ], + [ + 1915.0, + 970.0 + ], + [ + 1908.0, + 994.0 + ] + ], + "center_px": [ + 1893.5, + 971.5 + ], + "quality": { + "area_px": 1068.0, + "perimeter_px": 135.91316986083984, + "sharpness": { + "laplacian_var": 343.7986781787827 + }, + "contrast": { + "p05": 10.0, + "p95": 119.0, + "dynamic_range": 109.0, + "mean_gray": 48.251023192360165, + "std_gray": 38.974224730706645 + }, + "geometry": { + "distance_to_center_norm": 0.9336787462234497, + "distance_to_border_px": 5.0 + }, + "edge_ratio": 1.6823793029785157, + "edge_lengths_px": [ + 27.513633728027344, + 41.34005355834961, + 25.0, + 42.05948257446289 + ] + }, + "confidence": 0.042321015168188404 + }, + { + "observation_id": "2c5dfa20-2aea-42a8-b79c-dd23e7b414a3", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 968.0, + 585.0 + ], + [ + 939.0, + 564.0 + ], + [ + 947.0, + 533.0 + ], + [ + 976.0, + 555.0 + ] + ], + "center_px": [ + 957.5, + 559.25 + ], + "quality": { + "area_px": 1056.5, + "perimeter_px": 135.2695484161377, + "sharpness": { + "laplacian_var": 1105.281004709576 + }, + "contrast": { + "p05": 38.0, + "p95": 222.0, + "dynamic_range": 184.0, + "mean_gray": 119.67032967032966, + "std_gray": 72.60868018600019 + }, + "geometry": { + "distance_to_center_norm": 0.017623674124479294, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.1723828019390505, + "edge_lengths_px": [ + 35.80502700805664, + 32.015621185302734, + 36.400550842285156, + 31.048349380493164 + ] + }, + "confidence": 0.6007707825195051 + }, + { + "observation_id": "b7b87bd0-d6ed-4d20-9411-d9ef1749cf82", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 522.0, + 804.0 + ], + [ + 552.0, + 784.0 + ], + [ + 575.0, + 804.0 + ], + [ + 544.0, + 825.0 + ] + ], + "center_px": [ + 548.25, + 804.25 + ], + "quality": { + "area_px": 1086.5, + "perimeter_px": 134.39211654663086, + "sharpness": { + "laplacian_var": 507.28465939654757 + }, + "contrast": { + "p05": 12.0, + "p95": 146.0, + "dynamic_range": 134.0, + "mean_gray": 58.46993006993007, + "std_gray": 50.48686187191111 + }, + "geometry": { + "distance_to_center_norm": 0.444186270236969, + "distance_to_border_px": 255.0 + }, + "edge_ratio": 1.2311278154088554, + "edge_lengths_px": [ + 36.055511474609375, + 30.479501724243164, + 37.44329071044922, + 30.4138126373291 + ] + }, + "confidence": 0.5883494177188935 + }, + { + "observation_id": "09e29c49-3537-4197-9bd9-3da84cd70dba", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1517.0, + 895.0 + ], + [ + 1551.0, + 915.0 + ], + [ + 1538.0, + 939.0 + ], + [ + 1503.0, + 917.0 + ] + ], + "center_px": [ + 1527.25, + 916.5 + ], + "quality": { + "area_px": 1077.0, + "perimeter_px": 134.15771675109863, + "sharpness": { + "laplacian_var": 465.73865784499054 + }, + "contrast": { + "p05": 11.0, + "p95": 133.0, + "dynamic_range": 122.0, + "mean_gray": 59.37771739130435, + "std_gray": 43.479333461633914 + }, + "geometry": { + "distance_to_center_norm": 0.6181163787841797, + "distance_to_border_px": 141.0 + }, + "edge_ratio": 1.5853187278475818, + "edge_lengths_px": [ + 39.4461669921875, + 27.294687271118164, + 41.34005355834961, + 26.07680892944336 + ] + }, + "confidence": 0.45290577054800996 + }, + { + "observation_id": "6c8a4e29-e7ca-4c9d-8ed7-94723cef7c38", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 937.0, + 803.0 + ], + [ + 959.0, + 782.0 + ], + [ + 987.0, + 802.0 + ], + [ + 965.0, + 823.0 + ] + ], + "center_px": [ + 962.0, + 802.5 + ], + "quality": { + "area_px": 1028.0, + "perimeter_px": 129.6462287902832, + "sharpness": { + "laplacian_var": 328.9850116762729 + }, + "contrast": { + "p05": 11.0, + "p95": 121.0, + "dynamic_range": 110.0, + "mean_gray": 34.0352422907489, + "std_gray": 35.151427285573405 + }, + "geometry": { + "distance_to_center_norm": 0.23832835257053375, + "distance_to_border_px": 257.0 + }, + "edge_ratio": 1.1313708731005807, + "edge_lengths_px": [ + 30.4138126373291, + 34.4093017578125, + 30.4138126373291, + 34.4093017578125 + ] + }, + "confidence": 0.6057547967936824 + }, + { + "observation_id": "72213542-6a4b-4e43-b0c4-0f4b2c719e4b", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 887.0, + 784.0 + ], + [ + 910.0, + 764.0 + ], + [ + 937.0, + 783.0 + ], + [ + 915.0, + 802.0 + ] + ], + "center_px": [ + 912.25, + 783.25 + ], + "quality": { + "area_px": 952.5, + "perimeter_px": 125.85016632080078, + "sharpness": { + "laplacian_var": 288.95221839888285 + }, + "contrast": { + "p05": 12.0, + "p95": 144.0, + "dynamic_range": 132.0, + "mean_gray": 73.74773413897282, + "std_gray": 51.186951810509015 + }, + "geometry": { + "distance_to_center_norm": 0.22505928575992584, + "distance_to_border_px": 278.0 + }, + "edge_ratio": 1.1450949632973846, + "edge_lengths_px": [ + 30.479501724243164, + 33.0151481628418, + 29.068883895874023, + 33.2866325378418 + ] + }, + "confidence": 0.5545391608146377 + }, + { + "observation_id": "7ede0a91-708c-4b71-ada1-a6b088e46c57", + "type": "aruco", + "marker_id": 157, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1067.0, + 483.0 + ], + [ + 1043.0, + 498.0 + ], + [ + 1052.0, + 465.0 + ], + [ + 1077.0, + 451.0 + ] + ], + "center_px": [ + 1059.75, + 474.25 + ], + "quality": { + "area_px": 658.5, + "perimeter_px": 124.68640899658203, + "sharpness": { + "laplacian_var": 874.7410132334779 + }, + "contrast": { + "p05": 19.0, + "p95": 141.0, + "dynamic_range": 122.0, + "mean_gray": 63.507337526205454, + "std_gray": 43.48192290040407 + }, + "geometry": { + "distance_to_center_norm": 0.10846592485904694, + "distance_to_border_px": 451.0 + }, + "edge_ratio": 1.2085835040225783, + "edge_lengths_px": [ + 28.301942825317383, + 34.20526123046875, + 28.65309715270996, + 33.52610778808594 + ] + }, + "confidence": 0.363235141418742 + }, + { + "observation_id": "23f04658-eab0-42f8-bf40-fe107c529630", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 854.0, + 550.0 + ], + [ + 881.0, + 567.0 + ], + [ + 859.0, + 585.0 + ], + [ + 831.0, + 568.0 + ] + ], + "center_px": [ + 856.25, + 567.5 + ], + "quality": { + "area_px": 877.5, + "perimeter_px": 122.29429626464844, + "sharpness": { + "laplacian_var": 347.1410599638428 + }, + "contrast": { + "p05": 14.0, + "p95": 140.0, + "dynamic_range": 126.0, + "mean_gray": 57.35108153078203, + "std_gray": 46.35482987320794 + }, + "geometry": { + "distance_to_center_norm": 0.09744642674922943, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.15237597098315, + "edge_lengths_px": [ + 31.906112670898438, + 28.42534065246582, + 32.75667953491211, + 29.20616340637207 + ] + }, + "confidence": 0.5076468225043836 + }, + { + "observation_id": "dd357283-b0c7-47ed-ba4e-0faa5c1c9d38", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 606.0, + 709.0 + ], + [ + 634.0, + 692.0 + ], + [ + 655.0, + 709.0 + ], + [ + 627.0, + 728.0 + ] + ], + "center_px": [ + 630.5, + 709.5 + ], + "quality": { + "area_px": 882.0, + "perimeter_px": 121.93264579772949, + "sharpness": { + "laplacian_var": 435.6184741767603 + }, + "contrast": { + "p05": 12.0, + "p95": 148.0, + "dynamic_range": 136.0, + "mean_gray": 70.2512077294686, + "std_gray": 51.09671313053598 + }, + "geometry": { + "distance_to_center_norm": 0.3364107608795166, + "distance_to_border_px": 352.0 + }, + "edge_ratio": 1.2523949414499274, + "edge_lengths_px": [ + 32.75667953491211, + 27.018512725830078, + 33.83784866333008, + 28.319604873657227 + ] + }, + "confidence": 0.4695004591117706 + }, + { + "observation_id": "86077614-e01f-41b7-b07f-b416ce8c803d", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 933.0, + 716.0 + ], + [ + 905.0, + 699.0 + ], + [ + 909.0, + 672.0 + ], + [ + 938.0, + 689.0 + ] + ], + "center_px": [ + 921.25, + 694.0 + ], + "quality": { + "area_px": 846.0, + "perimeter_px": 121.12589836120605, + "sharpness": { + "laplacian_var": 894.1758777006172 + }, + "contrast": { + "p05": 28.0, + "p95": 189.0, + "dynamic_range": 161.0, + "mean_gray": 88.23090277777777, + "std_gray": 59.51593346898788 + }, + "geometry": { + "distance_to_center_norm": 0.14417345821857452, + "distance_to_border_px": 364.0 + }, + "edge_ratio": 1.2315756012270063, + "edge_lengths_px": [ + 32.75667953491211, + 27.294687271118164, + 33.61547088623047, + 27.459060668945312 + ] + }, + "confidence": 0.4579499621769808 + }, + { + "observation_id": "9d3f95de-e86b-4a33-8347-0ec1f63dbf10", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 852.0, + 716.0 + ], + [ + 873.0, + 697.0 + ], + [ + 900.0, + 714.0 + ], + [ + 878.0, + 733.0 + ] + ], + "center_px": [ + 875.75, + 715.0 + ], + "quality": { + "area_px": 869.0, + "perimeter_px": 120.35905075073242, + "sharpness": { + "laplacian_var": 386.8496256211561 + }, + "contrast": { + "p05": 15.0, + "p95": 123.0, + "dynamic_range": 108.0, + "mean_gray": 68.21018062397373, + "std_gray": 37.92186022021853 + }, + "geometry": { + "distance_to_center_norm": 0.17633448541164398, + "distance_to_border_px": 347.0 + }, + "edge_ratio": 1.126643991441327, + "edge_lengths_px": [ + 28.319604873657227, + 31.906112670898438, + 29.068883895874023, + 31.064449310302734 + ] + }, + "confidence": 0.5142115324222218 + }, + { + "observation_id": "bdec5077-db99-44c5-a056-3e1375323b1a", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 890.0, + 686.0 + ], + [ + 863.0, + 668.0 + ], + [ + 868.0, + 642.0 + ], + [ + 895.0, + 660.0 + ] + ], + "center_px": [ + 879.0, + 664.0 + ], + "quality": { + "area_px": 792.0, + "perimeter_px": 117.85273361206055, + "sharpness": { + "laplacian_var": 1206.4677469135802 + }, + "contrast": { + "p05": 28.0, + "p95": 168.04999999999995, + "dynamic_range": 140.04999999999995, + "mean_gray": 63.922222222222224, + "std_gray": 46.665887559633916 + }, + "geometry": { + "distance_to_center_norm": 0.13446907699108124, + "distance_to_border_px": 394.0 + }, + "edge_ratio": 1.2256181913156161, + "edge_lengths_px": [ + 32.4499626159668, + 26.476404190063477, + 32.4499626159668, + 26.476404190063477 + ] + }, + "confidence": 0.43080300516201436 + }, + { + "observation_id": "0c50da53-65b0-4078-90c1-0dd0bcd38710", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1530.0, + 747.0 + ], + [ + 1542.0, + 729.0 + ], + [ + 1573.0, + 746.0 + ], + [ + 1562.0, + 764.0 + ] + ], + "center_px": [ + 1551.75, + 746.5 + ], + "quality": { + "area_px": 762.5, + "perimeter_px": 114.31900978088379, + "sharpness": { + "laplacian_var": 389.1680390887766 + }, + "contrast": { + "p05": 11.0, + "p95": 124.0, + "dynamic_range": 113.0, + "mean_gray": 63.25145067698259, + "std_gray": 38.174072221406625 + }, + "geometry": { + "distance_to_center_norm": 0.5690169334411621, + "distance_to_border_px": 316.0 + }, + "edge_ratio": 1.7177199327984685, + "edge_lengths_px": [ + 21.63330841064453, + 35.35533905029297, + 21.095022201538086, + 36.2353401184082 + ] + }, + "confidence": 0.29593493306278906 + }, + { + "observation_id": "e2903806-b511-47cd-8c1e-e92e4dc21b98", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 626.0, + 589.0 + ], + [ + 651.0, + 575.0 + ], + [ + 671.0, + 590.0 + ], + [ + 646.0, + 606.0 + ] + ], + "center_px": [ + 648.5, + 590.0 + ], + "quality": { + "area_px": 700.0, + "perimeter_px": 109.58355140686035, + "sharpness": { + "laplacian_var": 696.9733553576558 + }, + "contrast": { + "p05": 17.0, + "p95": 147.0, + "dynamic_range": 130.0, + "mean_gray": 95.57627118644068, + "std_gray": 45.16788959540538 + }, + "geometry": { + "distance_to_center_norm": 0.28642815351486206, + "distance_to_border_px": 474.0 + }, + "edge_ratio": 1.1872657775878905, + "edge_lengths_px": [ + 28.65309715270996, + 25.0, + 29.681644439697266, + 26.248809814453125 + ] + }, + "confidence": 0.39305998326235797 + }, + { + "observation_id": "dd3c02f3-4a66-4029-90e5-5edc73ebdc0e", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 519.0, + 511.0 + ], + [ + 545.0, + 497.0 + ], + [ + 562.0, + 512.0 + ], + [ + 538.0, + 525.0 + ] + ], + "center_px": [ + 541.0, + 511.25 + ], + "quality": { + "area_px": 605.5, + "perimeter_px": 103.09674835205078, + "sharpness": { + "laplacian_var": 448.52923802596484 + }, + "contrast": { + "p05": 11.0, + "p95": 136.75, + "dynamic_range": 125.75, + "mean_gray": 60.19718309859155, + "std_gray": 44.03139715847134 + }, + "geometry": { + "distance_to_center_norm": 0.38130083680152893, + "distance_to_border_px": 497.0 + }, + "edge_ratio": 1.3024968554480314, + "edge_lengths_px": [ + 29.529645919799805, + 22.671567916870117, + 27.294687271118164, + 23.600847244262695 + ] + }, + "confidence": 0.3099175748319284 + }, + { + "observation_id": "b22ed8e8-18ec-4a61-9c8b-d7889d554bdc", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1362.0, + 630.0 + ], + [ + 1374.0, + 614.0 + ], + [ + 1402.0, + 628.0 + ], + [ + 1390.0, + 644.0 + ] + ], + "center_px": [ + 1382.0, + 629.0 + ], + "quality": { + "area_px": 616.0, + "perimeter_px": 102.60990524291992, + "sharpness": { + "laplacian_var": 431.1114289457594 + }, + "contrast": { + "p05": 12.0, + "p95": 127.0, + "dynamic_range": 115.0, + "mean_gray": 70.1285046728972, + "std_gray": 38.115844457372006 + }, + "geometry": { + "distance_to_center_norm": 0.3915579915046692, + "distance_to_border_px": 436.0 + }, + "edge_ratio": 1.5652476310729981, + "edge_lengths_px": [ + 20.0, + 31.30495262145996, + 20.0, + 31.30495262145996 + ] + }, + "confidence": 0.26236530151152454 + }, + { + "observation_id": "1c560b1f-7dee-41bd-a55f-5530a1fea331", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1554.0, + 615.0 + ], + [ + 1564.0, + 599.0 + ], + [ + 1592.0, + 614.0 + ], + [ + 1582.0, + 629.0 + ] + ], + "center_px": [ + 1573.0, + 614.25 + ], + "quality": { + "area_px": 579.0, + "perimeter_px": 99.9654312133789, + "sharpness": { + "laplacian_var": 536.9158016147635 + }, + "contrast": { + "p05": 12.350000000000001, + "p95": 131.0, + "dynamic_range": 118.65, + "mean_gray": 67.45588235294117, + "std_gray": 40.61099550114479 + }, + "geometry": { + "distance_to_center_norm": 0.560604989528656, + "distance_to_border_px": 328.0 + }, + "edge_ratio": 1.7619919769236043, + "edge_lengths_px": [ + 18.867961883544922, + 31.764760971069336, + 18.027755737304688, + 31.30495262145996 + ] + }, + "confidence": 0.21907023701319386 + }, + { + "observation_id": "f8e48fad-4a60-4416-bd1c-002a38610691", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1322.0, + 580.0 + ], + [ + 1334.0, + 566.0 + ], + [ + 1360.0, + 580.0 + ], + [ + 1348.0, + 594.0 + ] + ], + "center_px": [ + 1341.0, + 580.0 + ], + "quality": { + "area_px": 532.0, + "perimeter_px": 95.93746948242188, + "sharpness": { + "laplacian_var": 591.1070309587195 + }, + "contrast": { + "p05": 14.0, + "p95": 125.0, + "dynamic_range": 111.0, + "mean_gray": 75.31713554987212, + "std_gray": 36.75844545830302 + }, + "geometry": { + "distance_to_center_norm": 0.3478076457977295, + "distance_to_border_px": 486.0 + }, + "edge_ratio": 1.6014699102436407, + "edge_lengths_px": [ + 18.439088821411133, + 29.529645919799805, + 18.439088821411133, + 29.529645919799805 + ] + }, + "confidence": 0.22146320976627604 + }, + { + "observation_id": "7b73ea40-6459-4e19-889b-b43edf48ccde", + "type": "aruco", + "marker_id": 200, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 888.0, + 400.0 + ], + [ + 910.0, + 411.0 + ], + [ + 894.0, + 425.0 + ], + [ + 869.0, + 413.0 + ] + ], + "center_px": [ + 890.25, + 412.25 + ], + "quality": { + "area_px": 518.5, + "perimeter_px": 96.60961723327637, + "sharpness": { + "laplacian_var": 1502.8288990414767 + }, + "contrast": { + "p05": 11.0, + "p95": 137.5, + "dynamic_range": 126.5, + "mean_gray": 60.26229508196721, + "std_gray": 42.75514284318721 + }, + "geometry": { + "distance_to_center_norm": 0.13214455544948578, + "distance_to_border_px": 400.0 + }, + "edge_ratio": 1.3043493590284174, + "edge_lengths_px": [ + 24.59674835205078, + 21.260292053222656, + 27.73084831237793, + 23.021728515625 + ] + }, + "confidence": 0.265010799655812 + }, + { + "observation_id": "1abd4e07-0da8-4a31-8a4d-3d490d0f5951", + "type": "aruco", + "marker_id": 86, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1242.0, + 465.0 + ], + [ + 1257.0, + 455.0 + ], + [ + 1279.0, + 467.0 + ], + [ + 1265.0, + 479.0 + ] + ], + "center_px": [ + 1260.75, + 466.5 + ], + "quality": { + "area_px": 436.0, + "perimeter_px": 88.45259666442871, + "sharpness": { + "laplacian_var": 1290.066315716148 + }, + "contrast": { + "p05": 14.8, + "p95": 128.2, + "dynamic_range": 113.39999999999999, + "mean_gray": 64.17350157728707, + "std_gray": 39.20903526100302 + }, + "geometry": { + "distance_to_center_norm": 0.2810840606689453, + "distance_to_border_px": 455.0 + }, + "edge_ratio": 1.4935759949283391, + "edge_lengths_px": [ + 18.027755737304688, + 25.05992889404297, + 18.439088821411133, + 26.925823211669922 + ] + }, + "confidence": 0.19461123347835588 + }, + { + "observation_id": "0e002629-1faa-4daa-a2dc-3b098f021f73", + "type": "aruco", + "marker_id": 84, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1267.0, + 506.0 + ], + [ + 1282.0, + 496.0 + ], + [ + 1303.0, + 510.0 + ], + [ + 1290.0, + 521.0 + ] + ], + "center_px": [ + 1285.5, + 508.25 + ], + "quality": { + "area_px": 434.0, + "perimeter_px": 87.75506210327148, + "sharpness": { + "laplacian_var": 832.6089906347555 + }, + "contrast": { + "p05": 14.0, + "p95": 121.0, + "dynamic_range": 107.0, + "mean_gray": 66.91935483870968, + "std_gray": 34.93907064660254 + }, + "geometry": { + "distance_to_center_norm": 0.29692110419273376, + "distance_to_border_px": 496.0 + }, + "edge_ratio": 1.6124515487433615, + "edge_lengths_px": [ + 18.027755737304688, + 25.238859176635742, + 17.029386520385742, + 27.459060668945312 + ] + }, + "confidence": 0.17943691614102802 + }, + { + "observation_id": "d3505b89-aaeb-4695-b8d6-00e1e783f325", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1113.0, + 392.0 + ], + [ + 1128.0, + 383.0 + ], + [ + 1147.0, + 395.0 + ], + [ + 1132.0, + 404.0 + ] + ], + "center_px": [ + 1130.0, + 393.5 + ], + "quality": { + "area_px": 351.0, + "perimeter_px": 79.93011856079102, + "sharpness": { + "laplacian_var": 863.3818288252613 + }, + "contrast": { + "p05": 10.0, + "p95": 117.0, + "dynamic_range": 107.0, + "mean_gray": 60.56846473029046, + "std_gray": 37.87340346699867 + }, + "geometry": { + "distance_to_center_norm": 0.20374470949172974, + "distance_to_border_px": 383.0 + }, + "edge_ratio": 1.284650453905414, + "edge_lengths_px": [ + 17.492855072021484, + 22.472204208374023, + 17.492855072021484, + 22.472204208374023 + ] + }, + "confidence": 0.18215071600887703 + }, + { + "observation_id": "493ed8d5-08f2-4768-ae8c-7195dec4f55b", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1137.0, + 378.0 + ], + [ + 1152.0, + 369.0 + ], + [ + 1172.0, + 380.0 + ], + [ + 1155.0, + 389.0 + ] + ], + "center_px": [ + 1154.0, + 379.0 + ], + "quality": { + "area_px": 347.0, + "perimeter_px": 80.64868545532227, + "sharpness": { + "laplacian_var": 1062.0075970780467 + }, + "contrast": { + "p05": 18.700000000000003, + "p95": 116.29999999999998, + "dynamic_range": 97.59999999999998, + "mean_gray": 64.25098039215686, + "std_gray": 32.11352028839786 + }, + "geometry": { + "distance_to_center_norm": 0.2288840264081955, + "distance_to_border_px": 369.0 + }, + "edge_ratio": 1.3048426972246228, + "edge_lengths_px": [ + 17.492855072021484, + 22.825424194335938, + 19.235383987426758, + 21.095022201538086 + ] + }, + "confidence": 0.17728829216377978 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 1064.0, + 248.0 + ], + [ + 1057.0, + 261.0 + ], + [ + 1020.0, + 281.0 + ], + [ + 983.0, + 289.0 + ] + ], + "center_px": [ + 1031.0, + 269.75 + ], + "area_px": 605.0 + }, + { + "image_points_px": [ + [ + 1428.0, + 841.0 + ], + [ + 1467.0, + 866.0 + ], + [ + 1450.0, + 893.0 + ], + [ + 1410.0, + 867.0 + ] + ], + "center_px": [ + 1438.75, + 866.75 + ], + "area_px": 1493.0 + }, + { + "image_points_px": [ + [ + 652.0, + 862.0 + ], + [ + 677.0, + 886.0 + ], + [ + 648.0, + 909.0 + ], + [ + 623.0, + 884.0 + ] + ], + "center_px": [ + 650.0, + 885.25 + ], + "area_px": 1273.0 + }, + { + "image_points_px": [ + [ + 1306.0, + 888.0 + ], + [ + 1339.0, + 910.0 + ], + [ + 1324.0, + 933.0 + ], + [ + 1289.0, + 912.0 + ] + ], + "center_px": [ + 1314.5, + 910.75 + ], + "area_px": 1143.0 + }, + { + "image_points_px": [ + [ + 780.0, + 830.0 + ], + [ + 806.0, + 851.0 + ], + [ + 778.0, + 873.0 + ], + [ + 753.0, + 851.0 + ] + ], + "center_px": [ + 779.25, + 851.25 + ], + "area_px": 1139.5 + }, + { + "image_points_px": [ + [ + 1148.0, + 784.0 + ], + [ + 1177.0, + 804.0 + ], + [ + 1160.0, + 825.0 + ], + [ + 1128.0, + 806.0 + ] + ], + "center_px": [ + 1153.25, + 804.75 + ], + "area_px": 1016.5 + }, + { + "image_points_px": [ + [ + 743.0, + 757.0 + ], + [ + 766.0, + 777.0 + ], + [ + 738.0, + 796.0 + ], + [ + 715.0, + 778.0 + ] + ], + "center_px": [ + 740.5, + 777.0 + ], + "area_px": 992.0 + }, + { + "image_points_px": [ + [ + 1804.0, + 870.0 + ], + [ + 1838.0, + 891.0 + ], + [ + 1831.0, + 911.0 + ], + [ + 1795.0, + 893.0 + ] + ], + "center_px": [ + 1817.0, + 891.25 + ], + "area_px": 908.5 + }, + { + "image_points_px": [ + [ + 1700.0, + 814.0 + ], + [ + 1734.0, + 833.0 + ], + [ + 1725.0, + 853.0 + ], + [ + 1691.0, + 833.0 + ] + ], + "center_px": [ + 1712.5, + 833.25 + ], + "area_px": 838.5 + }, + { + "image_points_px": [ + [ + 1760.0, + 778.0 + ], + [ + 1793.0, + 796.0 + ], + [ + 1784.0, + 815.0 + ], + [ + 1752.0, + 798.0 + ] + ], + "center_px": [ + 1772.25, + 796.75 + ], + "area_px": 782.5 + }, + { + "image_points_px": [ + [ + 1251.0, + 730.0 + ], + [ + 1280.0, + 748.0 + ], + [ + 1266.0, + 765.0 + ], + [ + 1235.0, + 747.0 + ] + ], + "center_px": [ + 1258.0, + 747.5 + ], + "area_px": 780.0 + }, + { + "image_points_px": [ + [ + 983.0, + 297.0 + ], + [ + 978.0, + 311.0 + ], + [ + 941.0, + 331.0 + ], + [ + 946.0, + 317.0 + ] + ], + "center_px": [ + 962.0, + 314.0 + ], + "area_px": 418.0 + }, + { + "image_points_px": [ + [ + 722.0, + 605.0 + ], + [ + 743.0, + 622.0 + ], + [ + 718.0, + 637.0 + ], + [ + 698.0, + 621.0 + ] + ], + "center_px": [ + 720.25, + 621.25 + ], + "area_px": 722.0 + }, + { + "image_points_px": [ + [ + 807.0, + 609.0 + ], + [ + 833.0, + 628.0 + ], + [ + 832.0, + 650.0 + ], + [ + 806.0, + 632.0 + ] + ], + "center_px": [ + 819.5, + 629.75 + ], + "area_px": 603.5 + }, + { + "image_points_px": [ + [ + 487.0, + 587.0 + ], + [ + 462.0, + 603.0 + ], + [ + 442.0, + 589.0 + ], + [ + 467.0, + 573.0 + ] + ], + "center_px": [ + 464.5, + 588.0 + ], + "area_px": 670.0 + }, + { + "image_points_px": [ + [ + 573.0, + 559.0 + ], + [ + 591.0, + 575.0 + ], + [ + 565.0, + 589.0 + ], + [ + 547.0, + 574.0 + ] + ], + "center_px": [ + 569.0, + 574.25 + ], + "area_px": 664.0 + }, + { + "image_points_px": [ + [ + 1409.0, + 648.0 + ], + [ + 1437.0, + 663.0 + ], + [ + 1424.0, + 680.0 + ], + [ + 1396.0, + 665.0 + ] + ], + "center_px": [ + 1416.5, + 664.0 + ], + "area_px": 671.0 + }, + { + "image_points_px": [ + [ + 1712.0, + 678.0 + ], + [ + 1742.0, + 695.0 + ], + [ + 1733.0, + 711.0 + ], + [ + 1703.0, + 694.0 + ] + ], + "center_px": [ + 1722.5, + 694.5 + ], + "area_px": 633.0 + }, + { + "image_points_px": [ + [ + 1431.0, + 620.0 + ], + [ + 1459.0, + 636.0 + ], + [ + 1448.0, + 651.0 + ], + [ + 1419.0, + 636.0 + ] + ], + "center_px": [ + 1439.25, + 635.75 + ], + "area_px": 620.0 + }, + { + "image_points_px": [ + [ + 1664.0, + 643.0 + ], + [ + 1694.0, + 658.0 + ], + [ + 1684.0, + 674.0 + ], + [ + 1655.0, + 658.0 + ] + ], + "center_px": [ + 1674.25, + 658.25 + ], + "area_px": 604.5 + }, + { + "image_points_px": [ + [ + 1322.0, + 600.0 + ], + [ + 1349.0, + 615.0 + ], + [ + 1336.0, + 630.0 + ], + [ + 1309.0, + 615.0 + ] + ], + "center_px": [ + 1329.0, + 615.0 + ], + "area_px": 600.0 + }, + { + "image_points_px": [ + [ + 1276.0, + 549.0 + ], + [ + 1301.0, + 562.0 + ], + [ + 1288.0, + 577.0 + ], + [ + 1262.0, + 562.0 + ] + ], + "center_px": [ + 1281.75, + 562.5 + ], + "area_px": 546.0 + }, + { + "image_points_px": [ + [ + 1405.0, + 556.0 + ], + [ + 1431.0, + 571.0 + ], + [ + 1419.0, + 584.0 + ], + [ + 1393.0, + 571.0 + ] + ], + "center_px": [ + 1412.0, + 570.5 + ], + "area_px": 532.0 + }, + { + "image_points_px": [ + [ + 1498.0, + 598.0 + ], + [ + 1511.0, + 585.0 + ], + [ + 1536.0, + 600.0 + ], + [ + 1525.0, + 612.0 + ] + ], + "center_px": [ + 1517.5, + 598.75 + ], + "area_px": 499.0 + }, + { + "image_points_px": [ + [ + 1475.0, + 573.0 + ], + [ + 1488.0, + 560.0 + ], + [ + 1513.0, + 575.0 + ], + [ + 1501.0, + 587.0 + ] + ], + "center_px": [ + 1494.25, + 573.75 + ], + "area_px": 500.0 + }, + { + "image_points_px": [ + [ + 1321.0, + 496.0 + ], + [ + 1345.0, + 509.0 + ], + [ + 1333.0, + 523.0 + ], + [ + 1309.0, + 510.0 + ] + ], + "center_px": [ + 1327.0, + 509.5 + ], + "area_px": 492.0 + }, + { + "image_points_px": [ + [ + 1045.0, + 208.0 + ], + [ + 1054.0, + 206.0 + ], + [ + 1066.0, + 236.0 + ], + [ + 1057.0, + 239.0 + ] + ], + "center_px": [ + 1055.5, + 222.25 + ], + "area_px": 304.5 + }, + { + "image_points_px": [ + [ + 876.0, + 345.0 + ], + [ + 894.0, + 336.0 + ], + [ + 913.0, + 347.0 + ], + [ + 895.0, + 356.0 + ] + ], + "center_px": [ + 894.5, + 346.0 + ], + "area_px": 369.0 + }, + { + "image_points_px": [ + [ + 966.0, + 427.0 + ], + [ + 968.0, + 436.0 + ], + [ + 959.0, + 467.0 + ], + [ + 957.0, + 444.0 + ] + ], + "center_px": [ + 962.5, + 443.5 + ], + "area_px": 192.0 + }, + { + "image_points_px": [ + [ + 845.0, + 324.0 + ], + [ + 863.0, + 316.0 + ], + [ + 880.0, + 326.0 + ], + [ + 862.0, + 335.0 + ] + ], + "center_px": [ + 862.5, + 325.25 + ], + "area_px": 333.5 + }, + { + "image_points_px": [ + [ + 938.0, + 619.0 + ], + [ + 940.0, + 625.0 + ], + [ + 932.0, + 653.0 + ], + [ + 928.0, + 656.0 + ] + ], + "center_px": [ + 934.5, + 638.25 + ], + "area_px": 111.0 + }, + { + "image_points_px": [ + [ + 947.0, + 626.0 + ], + [ + 951.0, + 629.0 + ], + [ + 943.0, + 659.0 + ], + [ + 938.0, + 661.0 + ] + ], + "center_px": [ + 944.75, + 643.75 + ], + "area_px": 150.5 + }, + { + "image_points_px": [ + [ + 952.0, + 465.0 + ], + [ + 953.0, + 476.0 + ], + [ + 943.0, + 499.0 + ], + [ + 947.0, + 474.0 + ] + ], + "center_px": [ + 948.75, + 478.5 + ], + "area_px": 111.0 + }, + { + "image_points_px": [ + [ + 998.0, + 602.0 + ], + [ + 991.0, + 632.0 + ], + [ + 987.0, + 633.0 + ], + [ + 993.0, + 608.0 + ] + ], + "center_px": [ + 992.25, + 618.75 + ], + "area_px": 101.0 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam2_camera_pose.json b/data/homing/20260625_172504/cam2_camera_pose.json new file mode 100644 index 0000000..770244b --- /dev/null +++ b/data/homing/20260625_172504/cam2_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/cam2_debug.jpg b/data/homing/20260625_172504/cam2_debug.jpg new file mode 100644 index 0000000..97cf29a Binary files /dev/null and b/data/homing/20260625_172504/cam2_debug.jpg differ diff --git a/data/homing/20260625_172504/robot_1781069752019.json b/data/homing/20260625_172504/robot_1781069752019.json new file mode 100644 index 0000000..8fa06ee --- /dev/null +++ b/data/homing/20260625_172504/robot_1781069752019.json @@ -0,0 +1,2487 @@ +{ + "coordinateSystem": { + "handedness": "right", + "x": "right", + "y": "backward", + "z": "up" + }, + "units": { + "length": "mm", + "rotation": "degree" + }, + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "renderingInfo": { + "width": 1280, + "height": 720, + "renderDefaults": { + "width": 1280, + "height": 720, + "dofFStop": 11 + }, + "cameraPosition__1": [ + -10, + -800, + 500 + ], + "cameraPosition__2": [ + -500, + 300, + 1200 + ], + "cameraPosition__3": [ + -200, + -900, + 200 + ], + "cameraPosition__4": [ + 1200, + 200, + 300 + ], + "cameraPosition_a": [ + -300, + -800, + 500 + ], + "cameraPosition": [ + -200, + 200, + 1400 + ], + "cameraPosition_c": [ + 600, + -500, + 600 + ], + "cameraTarget": [ + 200, + -200, + 180 + ], + "cameraUpVector": [ + 0, + 0, + 1 + ], + "lightPosition": [ + -500, + -500, + 500 + ], + "lightTarget": [ + 0, + 0, + 0 + ], + "lightUpVector": [ + 0, + 0, + 1 + ], + "metric": "mm", + "showSkeleton": true, + "showMarkers": true, + "backgroundColor": [ + 0.7, + 0.85, + 1 + ], + "backgroundStrength": 0.2, + "sunEnergy": 0.35, + "areaEnergy": 120, + "exposure": -1.5, + "lensDirt": true, + "lensDirtStrength": 0.08, + "dofEnabled": true, + "dofFStop": 11, + "arucoDust": true, + "arucoDustStrength": 1.6, + "markerOffsetMaxMm": 4, + "markerOffsetSeed": 0, + "markerRotationMaxDeg": 3, + "motionBlur": true, + "motionBlurMaxPx": 5.5, + "focalErrorPct": 0.5, + "principalErrorPx": 3, + "residualDistortion": [ + 0.02, + -0.01 + ], + "localizedBlur": false, + "localizedBlurStrength": 0.15, + "vignette": true, + "vignetteStrength": 0.08, + "sensorNoise": true, + "sensorNoiseStrength": 0.01, + "lensDistortion": true, + "lensDistortionStrength": 0.002, + "materials": { + "wood": { + "baseColor": [ + 0.72, + 0.52, + 0.33 + ], + "roughness": 0.85, + "metallic": 0 + }, + "plaWhite": { + "baseColor": [ + 0.95, + 0.95, + 0.95 + ], + "roughness": 0.45, + "metallic": 0 + }, + "steel": { + "baseColor": [ + 0.72, + 0.72, + 0.75 + ], + "roughness": 0.25, + "metallic": 1 + }, + "powderCoatBlue": { + "baseColor": [ + 0.15, + 0.25, + 0.7 + ], + "roughness": 0.55, + "metallic": 0 + }, + "defaultPlastic": { + "baseColor": [ + 0.95, + 0.95, + 0.95 + ], + "roughness": 0.4, + "metallic": 0 + }, + "skeletonRed": { + "baseColor": [ + 0.85, + 0.2, + 0.2 + ], + "roughness": 0.35, + "metallic": 0 + }, + "markerBlack": { + "baseColor": [ + 0.04, + 0.04, + 0.04 + ], + "roughness": 0.8, + "metallic": 0 + } + }, + "skeletonDefaults": { + "radius": 4, + "color": [ + 0.85, + 0.2, + 0.2 + ] + }, + "markerDefaults": { + "size": 25, + "thickness": 1, + "color": [ + 0.04, + 0.04, + 0.04 + ] + }, + "defaultPosition": { + "x": 80, + "y": 20, + "z": 80, + "a": -120, + "b": 23, + "c": 9, + "e": 3 + } + }, + "defaultPosition__": { + "x": 10, + "y": 4, + "z": 20, + "a": 10, + "b": 2, + "c": 9, + "e": 1 + }, + "defaultPosition": { + "x": 50, + "y": 4, + "z": 176, + "a": 20, + "b": 60, + "c": 9, + "e": 5 + }, + "recognized": { + "x": null, + "y": null, + "z": null, + "a": null, + "b": null, + "c": null, + "e": null + }, + "constraint_rules": { + "rigid_distance": { + "enabled": true, + "mode": "mst", + "weight": 1 + }, + "joint_axis_projection": { + "enabled": true, + "max_pairs": 2, + "weight": 0.35 + }, + "chain_axis_projection": { + "enabled": false, + "max_depth": 3, + "max_pairs": 2, + "weight": 0.15 + }, + "axis_alignment_threshold": 0.95 + }, + "observation_weighting": { + "enabled": true, + "distance_weight": true, + "marker_size_weight": true, + "view_angle_weight": true + }, + "multiview_calculation": { + "combine_mode": "mean", + "size_ref_px": 50, + "border_ref_px": 120, + "center_ref_norm": 0.01, + "sharpness_ref": 2500, + "homography_ref": 0.18, + "size_factor": 0.3, + "aspect_factor": 0.3, + "border_factor": 0.01, + "center_factor": 0.01, + "sharpness_factor": 0.5, + "homography_factor": 0.2, + "normal_visibility_factor": 0.01, + "spin_factor": 0.3, + "weight_floor": 0.3 + }, + "pose_estimation": { + "method": "hybrid", + "marker_observation": "corner_points", + "corner_point_links": ["Hand", "Palm", "FingerA", "FingerB"], + "use_normals": true, + "normal_weight": 100, + "robust_loss": "huber", + "huber_delta_mm": 8, + "max_iterations": 200, + "min_cameras_per_marker": 2, + "finger_block_joints": [ + "b", + "c", + "e" + ], + "per_link_method": {}, + "fit_origin_link": "Arm1" + }, + "robot_test_poses": { + "4": { + "x": 70, + "y": 50, + "z": -70, + "a": 120, + "b": 50, + "c": 30, + "e": 20 + }, + "5": { + "x": 180, + "y": 86, + "z": -120, + "a": -60, + "b": 22, + "c": 91, + "e": 10 + }, + "6": { + "x": 80, + "y": 20, + "z": 80, + "a": -120, + "b": 23, + "c": 9, + "e": 3 + }, + "7": { + "x": 30, + "y": -2, + "z": 95, + "a": 20, + "b": 23, + "c": 9, + "e": 9 + }, + "8": { + "x": 50, + "y": -2, + "z": 95, + "a": 20, + "b": 60, + "c": 9, + "e": 3 + }, + "9": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8 + }, + "10": { + "x": 120, + "y": 60, + "z": -110, + "a": 20, + "b": 30, + "c": 180, + "e": 4 + }, + "11": { + "x": 50, + "y": 4, + "z": 176, + "a": 20, + "b": 60, + "c": 9, + "e": 5 + }, + "12": { + "x": 50, + "y": 0, + "z": 178, + "a": 210, + "b": 80, + "c": 90, + "e": 6 + }, + "9a": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8, + "rendering": { + "width": 1440, + "height": 1080, + "dofFStop": 11 + } + }, + "9b": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8, + "rendering": { + "width": 4896, + "height": 3264, + "dofFStop": 5.6 + } + } + }, + "test_camera_positions": { + "a": [ + -300, + -800, + 800 + ], + "b": [ + 300, + -900, + 1200 + ], + "c": [ + 300, + -900, + 400 + ], + "d": [ + 700, + -800, + 400 + ], + "e": [ + 1200, + -900, + 400 + ], + "f": [ + 500, + -300, + 1400 + ], + "g": [ + -200, + 200, + 1400 + ] + }, + "test_camera_targets": { + "a": [ + 210, + -100, + 180 + ], + "b": [ + 310, + -80, + 180 + ], + "c": [ + 210, + -100, + 150 + ], + "d": [ + 210, + -100, + 150 + ], + "e": [ + 210, + -100, + 50 + ], + "f": [ + 200, + -200, + 180 + ], + "g": [ + 200, + -200, + 180 + ] + }, + "movements": { + "x": null, + "y": null, + "z": null, + "a": null, + "b": null, + "c": null, + "e": null + }, + "state_pose_params": { + "numbers_of_Elements_to_consider_start": 3, + "numbers_of_Elements_to_consider_final": 5, + "solver_in_between_geometrical": false, + "solver_after_geometrical": false, + "geometric_passes_per_stage": 2, + "revolute_search_coarse_deg": 5, + "revolute_search_fine_deg": 1, + "root_pose_min_markers": 3, + "use_marker_normals_flip_tiebreak": true, + "normal_flip_weight": 0.05 + }, + "links": { + "Board": { + "parent": null, + "size": [ + 1000, + 200, + 25 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "skeleton": { + "from": [ + 0, + 0, + 16 + ], + "to": [ + 1000, + 0, + 16 + ], + "radius": 4, + "color": [ + 0.85, + 0.2, + 0.2 + ] + }, + "markers": [ + { + "id": 46, + "set": "A0", + "position": [ + 537.44, + 185.2, + -27.2 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90, + "info": "is placed on a white paper, A0_60Arucos_25mm_Seet223.pdf, with the following marker placements:" + }, + { + "id": 47, + "set": "A0", + "position": [ + 343.18, + -286.05, + -27.49 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 48, + "set": "A0", + "position": [ + 687.51, + -321.53, + -26.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 49, + "set": "A0", + "position": [ + 1006.62, + 156.32, + -26.5 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 50, + "set": "A0", + "position": [ + 574.23, + 211.48, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 51, + "set": "A0", + "position": [ + 167.18, + -170.93, + -27.76 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 52, + "set": "A0", + "position": [ + 95.5, + 210.08, + -27.86 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 53, + "set": "A0", + "position": [ + 487.08, + 212.19, + -27.28 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 54, + "set": "A0", + "position": [ + 341.05, + -330.09, + -27.5 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 58, + "set": "A0", + "position": [ + 49.3, + -216.52, + -27.93 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 59, + "set": "A0", + "position": [ + 625.19, + -279.32, + -27.07 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 60, + "set": "A0", + "position": [ + 435.46, + 283.95, + -27.36 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 61, + "set": "A0", + "position": [ + -21.12, + 337.69, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 62, + "set": "A0", + "position": [ + 404.07, + -174.84, + -27.4 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 63, + "set": "A0", + "position": [ + 776.54, + -237.29, + -26.85 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 64, + "set": "A0", + "position": [ + -21.95, + -186.37, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 65, + "set": "A0", + "position": [ + 802.3, + -298.61, + -26.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 66, + "set": "A0", + "position": [ + 208.41, + -362.24, + -27.7 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 67, + "set": "A0", + "position": [ + 524.1, + 266.85, + -27.22 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 68, + "set": "A0", + "position": [ + 574.4, + 170.26, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 69, + "set": "A0", + "position": [ + 6.58, + -279.46, + -28 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 70, + "set": "A0", + "position": [ + 603.03, + 299.84, + -27.11 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 71, + "set": "A0", + "position": [ + 748.71, + -285.05, + -26.89 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 72, + "set": "A0", + "position": [ + 441.75, + 194.44, + -27.35 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 73, + "set": "A0", + "position": [ + 223.01, + 334.05, + -27.67 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 74, + "set": "A0", + "position": [ + 94.36, + 145.93, + -27.87 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 75, + "set": "A0", + "position": [ + -24.94, + 196.46, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 76, + "set": "A0", + "position": [ + 685.86, + 166, + -26.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 79, + "set": "A0", + "position": [ + 311.73, + -158.5, + -27.54 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 80, + "set": "A0", + "position": [ + 862.35, + -337.39, + -26.72 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 81, + "set": "A0", + "position": [ + 132.81, + 170.31, + -27.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 82, + "set": "A0", + "position": [ + 220.31, + 298.19, + -27.68 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 83, + "set": "A0", + "position": [ + 45.47, + 340.83, + -27.94 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 84, + "set": "A0", + "position": [ + 408.49, + 258.67, + -27.4 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 85, + "set": "A0", + "position": [ + 503.43, + -312.87, + -27.25 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 86, + "set": "A0", + "position": [ + 364.02, + 292.42, + -27.46 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 87, + "set": "A0", + "position": [ + 942.73, + -247.53, + -26.6 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 88, + "set": "A0", + "position": [ + 767.09, + 314.94, + -26.86 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 89, + "set": "A0", + "position": [ + 986.65, + -371.08, + -26.53 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 90, + "set": "A0", + "position": [ + 644.39, + 315.79, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 91, + "set": "A0", + "position": [ + 724.61, + 327.11, + -26.92 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 92, + "set": "A0", + "position": [ + 644.42, + -185.49, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 93, + "set": "A0", + "position": [ + 935.44, + 141.86, + -26.61 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 94, + "set": "A0", + "position": [ + 876.38, + 172.13, + -26.7 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 95, + "set": "A0", + "position": [ + 185.04, + -272.99, + -27.73 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 96, + "set": "A0", + "position": [ + 369.1, + -186.1, + -27.46 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 97, + "set": "A0", + "position": [ + 303.02, + -359.03, + -27.55 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 98, + "set": "A0", + "position": [ + 576.48, + 314.67, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 100, + "set": "A0", + "position": [ + 803.92, + 171.12, + -26.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 101, + "set": "A0", + "position": [ + 118.86, + 300, + -27.83 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 102, + "set": "A0", + "position": [ + 648.88, + -223.66, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 103, + "set": "A0", + "position": [ + 105.03, + -186.33, + -27.85 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 104, + "set": "A0", + "position": [ + 827.64, + 237.83, + -26.77 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 105, + "set": "A0", + "position": [ + 523.86, + -266.44, + -27.22 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 217, + "set": "rail", + "position": [ + 732.39, + -23.88, + 7.39 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 210, + "set": "rail", + "position": [ + 122.63, + -13.98, + -0.72 + ], + "normal": [ + 0, + 0, + 1 + ] + }, + { + "id": 215, + "position": [ + 335.09, + -95.39, + -9.19 + ], + "set": "rail" + }, + { + "id": 208, + "position": [ + 631.01, + -98.43, + -7.71 + ], + "set": "rail" + } + ], + "model": [ + { + "stlFile": "surfaces/Board.stl", + "originOfModel": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + 0, + -90 + ], + "material": "wood" + }, + { + "stlFile": "surfaces/BoardRail.stl", + "originOfModel": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + 0, + -90 + ], + "material": "steel" + } + ] + }, + "Base": { + "parent": "Board", + "size": [ + 150, + 200, + 150 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 0, + 0, + 16 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "x" + }, + "skeleton": { + "from": [ + 0, + 108, + 45 + ], + "to": [ + 110, + 108, + 45 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "skeletonCorrected": { + "from": [ + 0, + 108, + 45 + ], + "to": [ + 110, + 101.1, + 55.2 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [], + "model": [ + { + "stlFile": "surfaces/Base.stl", + "originOfModel": [ + -30, + 0, + -35 + ], + "rotationOfModelDegree": [ + 0, + 0, + 0 + ], + "material": "plaWhite" + } + ] + }, + "Arm1": { + "parent": "Base", + "size": [ + 70, + 250, + 70 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint1", + "type": "revolute", + "axis": [ + -1, + 0, + 0 + ], + "origin": [110, 101.6224, -13.1631], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "y" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -250, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.2, + 0.9 + ] + }, + "markers": [ + { + "id": 198, + "name": "aruco_198", + "position": [ + -0.66, + -158.22, + 34.29 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 229, + "name": "aruco_229", + "position": [ + -1, + -248.22, + 34.29 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 242, + "name": "aruco_242", + "position": [ + -0.9, + -248.22, + -35.71 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 0 + }, + { + "id": 243, + "name": "aruco_243", + "position": [ + -1.08, + -283.22, + -0.71 + ], + "normal": [ + 0, + -1, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 197, + "name": "aruco_197", + "position": [ + -35.95, + -248.08, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 0 + }, + { + "id": 55, + "set": "A0", + "position": [ + 282.76, + -261.86, + -27.58 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 56, + "set": "A0", + "position": [ + 499.34, + 168.57, + -27.26 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 57, + "set": "A0", + "position": [ + 601.52, + -364.54, + -27.11 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 77, + "set": "A0", + "position": [ + 18.94, + 193.28, + -27.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 99, + "set": "A0", + "position": [ + 957.97, + -323.38, + -26.58 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 78, + "set": "A0", + "position": [ + 821.84, + -345.7, + -26.78 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + } + ], + "model": [ + { + "stlFile": "surfaces/Holm.stl", + "originOfModel__": [ + -25, + 29, + -28.5 + ], + "originOfModel": [ + -29, + 25, + 28.5 + ], + "rotationOfModelDegree__": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 180, + 0, + -90 + ], + "material": "powderCoatBlue" + } + ] + }, + "Ellbow": { + "parent": "Arm1", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint2", + "type": "revolute", + "axis": [ + -1, + 0, + 0 + ], + "origin": [ + 0, + -250, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "z" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 90, + 0, + 0 + ], + "radius": 4, + "color": [ + 0.9, + 0.2, + 0.2 + ] + }, + "model": [ + { + "stlFile": "surfaces/Ellebogen.stl", + "originOfModel": [ + 90, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + -90, + -90 + ], + "material": "defaultPlastic" + } + ], + "markers": [ + { + "id": 116, + "name": "aruco_116", + "position": [ + 124.99, + 1.31, + -0.52 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 0 + }, + { + "id": 122, + "name": "aruco_122", + "position": [ + 90.04, + 1.44, + -35.57 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 129, + "name": "aruco_129", + "position": [ + 89.94, + 1.44, + 34.43 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 132, + "name": "aruco_132", + "position": [ + 52.44, + 1.58, + 34.37 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 248, + "name": "aruco_248", + "position": [ + 52.54, + 1.58, + -35.63 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 232, + "name": "aruco_232", + "position": [ + 90.12, + 26.19, + -25.32 + ], + "normal": [ + 0, + 1, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 121, + "name": "aruco_121", + "position": [ + 90.05, + 26.19, + 24.18 + ], + "normal": [ + 0, + 1, + 1 + ], + "size": 25, + "spin": 90 + } + ] + }, + "Arm2": { + "parent": "Ellbow", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint3", + "type": "revolute", + "axis": [ + 0, + -1, + 0 + ], + "origin": [ + 90, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "a" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -250, + 0 + ], + "radius": 4, + "color": [ + 0.95, + 0.85, + 0.2 + ] + }, + "model": [ + { + "stlFile": "surfaces/Unterarm.stl", + "originOfModel": [ + 0, + -250, + 0 + ], + "rotationOfModelDegree": [ + 180, + 0, + -90 + ], + "material": "defaultPlastic" + } + ], + "markers": [ + { + "id": 148, + "name": "aruco_148", + "position": [ + -35.83, + -217.09, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 144, + "name": "aruco_144", + "position": [ + -35.43, + -110.09, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 146, + "name": "aruco_146", + "position": [ + -25.22, + -110.12, + 24.01 + ], + "normal": [ + -1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 143, + "name": "aruco_143", + "position": [ + -25.48, + -180.12, + 24 + ], + "normal": [ + -1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 151, + "name": "aruco_151", + "position": [ + 25.48, + -180.12, + 24 + ], + "normal": [ + 1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 154, + "name": "aruco_154", + "position": [ + 35, + -110.09, + 0 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 153, + "name": "aruco_153", + "position": [ + 35, + -217, + 0 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 157, + "name": "aruco_157", + "position": [ + 0, + -180.12, + -30 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + } + ] + }, + "Hand": { + "parent": "Arm2", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint4", + "type": "revolute", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 0, + -250, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "b" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -35, + 0 + ], + "radius": 4, + "color": [ + 0.95, + 0.55, + 0.15 + ] + } + }, + "Palm": { + "parent": "Hand", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint3", + "type": "revolute", + "axis": [ + 0, + -1, + 0 + ], + "origin": [ + 0, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "c" + }, + "skeleton": { + "from": [ + -50, + -35, + 0 + ], + "to": [ + 50, + -35, + 0 + ], + "radius": 7, + "color": [ + 0.95, + 0.2, + 0.2 + ] + } + }, + "FingerA": { + "parent": "Palm", + "size": [ + 80, + 60, + 20 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 4, + -35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "e" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -60, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [ + { + "id": 147, + "position": [ + 12, + -24, + -17.1 + ], + "normal": [ + -10.98, + 0, + -23.56 + ], + "spin": 90 + }, + { + "id": 196, + "position": [ + 1.5, + -2.2, + 25.8 + ], + "normal": [ + 0, + -25.6, + 9.5 + ], + "spin": 270 + }, + { + "id": 137, + "position": [ + 13.9, + -40, + 0 + ], + "normal": [ + 1, + -0.35, + 0.4 + ], + "spin": 207 + } + ], + "model": [ + { + "stlFile": "surfaces/Finger.stl", + "originOfModel": [ + 24, + 0, + -9.1 + ], + "rotationOfModelDegree": [ + 90, + -90, + 0 + ], + "material": "defaultPlastic" + } + ] + }, + "FingerB": { + "parent": "Palm", + "size": [ + 80, + 60, + 20 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + -1, + 0, + 0 + ], + "origin": [ + -4, + -35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "e" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -60, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [ + { + "id": 142, + "position": [ + -12, + -24, + 17.1 + ], + "normal": [ + 10.98, + 0, + 23.56 + ], + "spin": 0 + }, + { + "id": 179, + "position": [ + -1.5, + -2.2, + -25.8 + ], + "normal": [ + 0, + -25.6, + -9.5 + ], + "spin": 90 + }, + { + "id": 178, + "position": [ + -13.9, + -40, + 0 + ], + "normal": [ + -1, + -0.35, + -0.4 + ], + "spin": -117 + } + ], + "model": [ + { + "stlFile": "surfaces/Finger.stl", + "originOfModel": [ + -24, + 0, + 9.1 + ], + "rotationOfModelDegree": [ + 90, + 90, + 0 + ], + "material": "defaultPlastic" + } + ] + } + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/robot_state.json b/data/homing/20260625_172504/robot_state.json new file mode 100644 index 0000000..4103387 --- /dev/null +++ b/data/homing/20260625_172504/robot_state.json @@ -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 +} \ No newline at end of file diff --git a/data/homing/20260625_172504/state_Arm1.json b/data/homing/20260625_172504/state_Arm1.json new file mode 100644 index 0000000..ca25cb3 --- /dev/null +++ b/data/homing/20260625_172504/state_Arm1.json @@ -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 + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/state_Arm2.json b/data/homing/20260625_172504/state_Arm2.json new file mode 100644 index 0000000..be177d4 --- /dev/null +++ b/data/homing/20260625_172504/state_Arm2.json @@ -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 + } +} \ No newline at end of file diff --git a/data/homing/20260625_172504/state_Ellbow.json b/data/homing/20260625_172504/state_Ellbow.json new file mode 100644 index 0000000..0e8310c --- /dev/null +++ b/data/homing/20260625_172504/state_Ellbow.json @@ -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 + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/aruco_marker_poses.csv b/data/homing/20260625_175916/aruco_marker_poses.csv new file mode 100644 index 0000000..45258ab --- /dev/null +++ b/data/homing/20260625_175916/aruco_marker_poses.csv @@ -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 diff --git a/data/homing/20260625_175916/aruco_marker_poses.json b/data/homing/20260625_175916/aruco_marker_poses.json new file mode 100644 index 0000000..0b4b048 --- /dev/null +++ b/data/homing/20260625_175916/aruco_marker_poses.json @@ -0,0 +1,2542 @@ +{ + "schema_version": "1.1", + "stage": "corner_marker_poses", + "created_utc": "2026-06-25T17:59:28Z", + "summary": { + "num_cameras": 3, + "num_markers": 55 + }, + "cameras": [ + { + "camera_id": "cam0", + "position_m": [ + 0.3350673366292186, + -0.8853000048719084, + 0.4696406655318255 + ], + "position_mm": [ + 335.06733662921863, + -885.3000048719084, + 469.6406655318255 + ], + "direction": [ + -0.06532628834247589, + 0.891889214515686, + -0.44751107692718506 + ] + }, + { + "camera_id": "cam1", + "position_m": [ + 0.2971478978431521, + -0.46272153074816635, + 0.7806502133866371 + ], + "position_mm": [ + 297.1478978431521, + -462.72153074816634, + 780.6502133866371 + ], + "direction": [ + 0.09464621543884277, + 0.4330478608608246, + -0.8963881134986877 + ] + }, + { + "camera_id": "cam2", + "position_m": [ + 0.714940855921558, + -0.6662914067891732, + 0.7272217771679246 + ], + "position_mm": [ + 714.940855921558, + -666.2914067891732, + 727.2217771679245 + ], + "direction": [ + -0.42920777201652527, + 0.5933837294578552, + -0.6809379458427429 + ] + } + ], + "markers": [ + { + "marker_id": 0, + "link": "unknown", + "set": "", + "position_m": [ + 0.5057898796706701, + -0.10006362260102525, + -0.008167728455989308 + ], + "position_mm": [ + 505.78987967067013, + -100.06362260102524, + -8.167728455989307 + ], + "normal": [ + 0.006538657460433341, + -0.014782511308232911, + 0.9998693531247156 + ], + "corners_m": [ + [ + 0.4937963941838161, + -0.08838286913595847, + -0.007888240463695363 + ], + [ + 0.5178935461778308, + -0.08828425714089688, + -0.008102188079211318 + ], + [ + 0.5176264902988851, + -0.11130712697945612, + -0.008381516749696494 + ], + [ + 0.4938430880221489, + -0.11228023714778951, + -0.00829896853135406 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.707201054842265, + "weight": 0.5077 + }, + { + "marker_id": 46, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5379009001567183, + 0.18551958066613233, + -0.02750469551597743 + ], + "position_mm": [ + 537.9009001567183, + 185.51958066613233, + -27.50469551597743 + ], + "normal": [ + 0.006101716399971257, + 0.0011731351320244388, + 0.9999806962191502 + ], + "corners_m": [ + [ + 0.5257212871160774, + 0.17315528379776637, + -0.026988598212300482 + ], + [ + 0.5258674118732634, + 0.19709709515926696, + -0.027889610527703272 + ], + [ + 0.5496191550127602, + 0.19732394480847895, + -0.027124454220501092 + ], + [ + 0.550395746624772, + 0.17450199889901707, + -0.028016119103404877 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.827361704817356, + "weight": 0.3399 + }, + { + "marker_id": 47, + "link": "Board", + "set": "A0", + "position_m": [ + 0.34333765455548276, + -0.2861847745585625, + -0.027523773050035134 + ], + "position_mm": [ + 343.33765455548274, + -286.1847745585625, + -27.523773050035135 + ], + "normal": [ + -0.008260443643305346, + 0.024316077811804785, + 0.9996701923287831 + ], + "corners_m": [ + [ + 0.33096858069753254, + -0.29778384763343974, + -0.027306098838472504 + ], + [ + 0.331460872243561, + -0.2739524058108337, + -0.027957761540952194 + ], + [ + 0.35552739237965486, + -0.27447844892983086, + -0.027669804361347965 + ], + [ + 0.3553937729011827, + -0.2985243958601457, + -0.027161427459367875 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.101989670254692, + "weight": 0.7524 + }, + { + "marker_id": 50, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5746435943051476, + 0.21177195734214369, + -0.027335556237064865 + ], + "position_mm": [ + 574.6435943051475, + 211.77195734214368, + -27.335556237064864 + ], + "normal": [ + 0.0024176322266523474, + 0.01089775308185015, + 0.9999376950751401 + ], + "corners_m": [ + [ + 0.5625653740036941, + 0.19911226444547786, + -0.02735276683054869 + ], + [ + 0.5629221272645557, + 0.22437217125348294, + -0.027255488055205838 + ], + [ + 0.5864324645601467, + 0.22347370346972611, + -0.027695882413607625 + ], + [ + 0.5866544113921939, + 0.2001296901998878, + -0.027038087648897306 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.065283654612518, + "weight": 0.2539 + }, + { + "marker_id": 51, + "link": "Board", + "set": "A0", + "position_m": [ + 0.16689164567684253, + -0.17105866251322321, + -0.02748813119733462 + ], + "position_mm": [ + 166.89164567684253, + -171.05866251322323, + -27.48813119733462 + ], + "normal": [ + -0.041415383955279446, + 0.0008144576553327232, + 0.9991416829612128 + ], + "corners_m": [ + [ + 0.1548071817811258, + -0.18289274051989246, + -0.027773429994292078 + ], + [ + 0.15476279414979763, + -0.15836469121945954, + -0.02820079392697982 + ], + [ + 0.17933055890849164, + -0.15961753820620186, + -0.026775804272438617 + ], + [ + 0.1786660478679551, + -0.18335968010733908, + -0.027202496595627967 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.199568727437796, + "weight": 0.5622 + }, + { + "marker_id": 53, + "link": "Board", + "set": "A0", + "position_m": [ + 0.48715510381519117, + 0.2129277740146936, + -0.027575572265094196 + ], + "position_mm": [ + 487.1551038151912, + 212.9277740146936, + -27.575572265094195 + ], + "normal": [ + 0.06676844170146369, + 0.021707804164587396, + 0.9975323285142744 + ], + "corners_m": [ + [ + 0.47497809597504886, + 0.19997744532281148, + -0.026407226393085105 + ], + [ + 0.47523543707981547, + 0.22391964210379825, + -0.02709115702660609 + ], + [ + 0.49889784152303174, + 0.22553285887565078, + -0.028559697103418404 + ], + [ + 0.49950904068286867, + 0.20228114975651384, + -0.028244208537267185 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.921310478140267, + "weight": 0.2372 + }, + { + "marker_id": 54, + "link": "Board", + "set": "A0", + "position_m": [ + 0.34130556402100765, + -0.3301795189505623, + -0.02754948849732214 + ], + "position_mm": [ + 341.3055640210076, + -330.1795189505623, + -27.549488497322137 + ], + "normal": [ + -0.010139074011023666, + 0.012618112746153654, + 0.9998689826216854 + ], + "corners_m": [ + [ + 0.3288990300052319, + -0.342072260912877, + -0.027515157257027786 + ], + [ + 0.329324191161338, + -0.3176388595973488, + -0.02783943150776133 + ], + [ + 0.353550999457845, + -0.3187030231932258, + -0.027559597815102258 + ], + [ + 0.35344803545961556, + -0.34230393209879784, + -0.02728376740939718 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.211242272668937, + "weight": 0.5842 + }, + { + "marker_id": 55, + "link": "Arm1", + "set": "A0", + "position_m": [ + 0.2827088580690346, + -0.26189953811063915, + -0.02662758878353472 + ], + "position_mm": [ + 282.7088580690346, + -261.8995381106391, + -26.62758878353472 + ], + "normal": [ + -0.03413433052970439, + 0.006380095792955842, + 0.9993968890570761 + ], + "corners_m": [ + [ + 0.2704977760901167, + -0.27386512965161175, + -0.027464955607691518 + ], + [ + 0.2705738434591523, + -0.24954034072692882, + -0.02661899418942674 + ], + [ + 0.2948251480035268, + -0.249918650698961, + -0.026791406166506448 + ], + [ + 0.29493866472334257, + -0.27427403136505507, + -0.025634999170514178 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.37256874416553, + "weight": 0.6963 + }, + { + "marker_id": 56, + "link": "Arm1", + "set": "A0", + "position_m": [ + 0.500024396873786, + 0.16942021436793403, + -0.02787920239530968 + ], + "position_mm": [ + 500.024396873786, + 169.42021436793402, + -27.87920239530968 + ], + "normal": [ + -0.013356790870194346, + 0.002159988134932123, + 0.9999084611047688 + ], + "corners_m": [ + [ + 0.48813054390630745, + 0.15783108088868705, + -0.02842387066840732 + ], + [ + 0.4876626246267272, + 0.1804591744034191, + -0.027664744607119582 + ], + [ + 0.5121487567125289, + 0.18148582713353736, + -0.028130402930385903 + ], + [ + 0.5121556622495804, + 0.1579047750460926, + -0.027297791375325915 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.701270415020787, + "weight": 0.3445 + }, + { + "marker_id": 58, + "link": "Board", + "set": "A0", + "position_m": [ + 0.04869069374635292, + -0.21676197552333598, + -0.027870862286625678 + ], + "position_mm": [ + 48.69069374635292, + -216.761975523336, + -27.870862286625677 + ], + "normal": [ + -0.019299818758378377, + 0.0018754659144916144, + 0.9998119821363902 + ], + "corners_m": [ + [ + 0.03636770545413085, + -0.2285342216918265, + -0.028579229476598512 + ], + [ + 0.03656830354708621, + -0.2043815764316403, + -0.027624728226982132 + ], + [ + 0.060764959763028946, + -0.20475297197868916, + -0.028154292708688224 + ], + [ + 0.06106180622116568, + -0.22937913199118798, + -0.027125198734233837 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.444592008306685, + "weight": 0.4039 + }, + { + "marker_id": 60, + "link": "Board", + "set": "A0", + "position_m": [ + 0.43569263566727046, + 0.28610617488465195, + -0.029341277130457828 + ], + "position_mm": [ + 435.69263566727045, + 286.106174884652, + -29.34127713045783 + ], + "normal": [ + -0.04418977162127982, + 0.069268366503198, + 0.9966188626982924 + ], + "corners_m": [ + [ + 0.42346596403989234, + 0.27320816392028296, + -0.028582351242919506 + ], + [ + 0.4239511837789218, + 0.3006268544943562, + -0.03127670329777442 + ], + [ + 0.44782244420794004, + 0.2970265620516715, + -0.029086220073392673 + ], + [ + 0.4475309506423274, + 0.273563119072297, + -0.0284198339077447 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.834575789586186, + "weight": 0.2812 + }, + { + "marker_id": 62, + "link": "Board", + "set": "A0", + "position_m": [ + 0.40421817930765414, + -0.1747468403084439, + -0.027140770079532955 + ], + "position_mm": [ + 404.2181793076541, + -174.7468403084439, + -27.140770079532956 + ], + "normal": [ + 0.008930667361015561, + -0.008808400354487158, + 0.9999213245369267 + ], + "corners_m": [ + [ + 0.3918835553115411, + -0.1867724251187778, + -0.02705538986817169 + ], + [ + 0.3923719120679265, + -0.1625809701197354, + -0.027011549095877937 + ], + [ + 0.4161777948597071, + -0.16318029127318381, + -0.027058684864997226 + ], + [ + 0.41643945499144175, + -0.18645367472207855, + -0.02743745648908497 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.962193043871462, + "weight": 0.5945 + }, + { + "marker_id": 64, + "link": "Board", + "set": "A0", + "position_m": [ + -0.022330434175829292, + -0.18715090473517298, + -0.02655609016297845 + ], + "position_mm": [ + -22.330434175829293, + -187.150904735173, + -26.55609016297845 + ], + "normal": [ + 0.029774558312894123, + 0.0006194969851146536, + 0.9995564475810047 + ], + "corners_m": [ + [ + -0.03396049001303908, + -0.19948040388596353, + -0.0260752625292054 + ], + [ + -0.033849313260349026, + -0.17484233067537452, + -0.026347470162448476 + ], + [ + -0.010705556181872163, + -0.1753002237364339, + -0.026777710903298765 + ], + [ + -0.010806377248056906, + -0.19898066064292008, + -0.027023917056961166 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.66324241487266, + "weight": 0.3764 + }, + { + "marker_id": 66, + "link": "Board", + "set": "A0", + "position_m": [ + 0.20796881421160063, + -0.3627806331311557, + -0.02865133737968076 + ], + "position_mm": [ + 207.96881421160063, + -362.7806331311557, + -28.65133737968076 + ], + "normal": [ + -0.07999609547449128, + 0.0928028755726249, + 0.9924657429827429 + ], + "corners_m": [ + [ + 0.19612941730970068, + -0.37476624250085777, + -0.02881181733517691 + ], + [ + 0.19528572101865735, + -0.3499469290741836, + -0.03055753382227886 + ], + [ + 0.22026968489522808, + -0.35009910983244047, + -0.029143017777778887 + ], + [ + 0.22019043362281648, + -0.3763102511171409, + -0.026092980583488388 + ] + ], + "num_cameras": 2, + "edge_length_mm": 25.142701961991044, + "weight": 0.3985 + }, + { + "marker_id": 67, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5246120249744499, + 0.2680240547695427, + -0.028510347976835486 + ], + "position_mm": [ + 524.6120249744499, + 268.0240547695427, + -28.510347976835487 + ], + "normal": [ + -0.016297552032093206, + -0.0012284590088582628, + 0.99986643142283 + ], + "corners_m": [ + [ + 0.5129066771172665, + 0.2563050651128315, + -0.028922599414757253 + ], + [ + 0.5125805821365621, + 0.2799063159452541, + -0.0284842693435033 + ], + [ + 0.536296368414212, + 0.27958692818431635, + -0.028516071472354233 + ], + [ + 0.5366644722297588, + 0.25629790983576883, + -0.02811845167672717 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.598063465909277, + "weight": 0.2927 + }, + { + "marker_id": 68, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5750537467702019, + 0.1701496999619704, + -0.02714373385931192 + ], + "position_mm": [ + 575.0537467702019, + 170.1496999619704, + -27.14373385931192 + ], + "normal": [ + 0.017219314958833616, + 0.03204544520859581, + 0.9993380732433501 + ], + "corners_m": [ + [ + 0.5628795084435165, + 0.15744641827893827, + -0.02670737964374933 + ], + [ + 0.5630314387154883, + 0.18093021636858606, + -0.027101945306499852 + ], + [ + 0.5872548998622685, + 0.18326684261167966, + -0.027948644064721438 + ], + [ + 0.5870491400595346, + 0.1589553225886776, + -0.02681696642227706 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.098468677311185, + "weight": 0.2699 + }, + { + "marker_id": 69, + "link": "Board", + "set": "A0", + "position_m": [ + 0.00691171004425156, + -0.2809891099151464, + -0.02722995911760562 + ], + "position_mm": [ + 6.91171004425156, + -280.9891099151464, + -27.22995911760562 + ], + "normal": [ + -0.0008922994789193346, + 0.031120805146204744, + 0.9995152321444092 + ], + "corners_m": [ + [ + -0.00479867624001892, + -0.2934623018998076, + -0.02725534099721189 + ], + [ + -0.004942941890814497, + -0.2692212508332243, + -0.02718595720017222 + ], + [ + 0.018102169843813517, + -0.2682477486200579, + -0.028027413138832467 + ], + [ + 0.01928628846402614, + -0.29302513830749605, + -0.0264511251342059 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.070160242597865, + "weight": 0.4846 + }, + { + "marker_id": 70, + "link": "Board", + "set": "A0", + "position_m": [ + 0.6035600155235546, + 0.3005676281578816, + -0.028343314388692798 + ], + "position_mm": [ + 603.5600155235546, + 300.5676281578816, + -28.343314388692797 + ], + "normal": [ + -0.06715166315405746, + 0.043265227033953975, + 0.9968042808221403 + ], + "corners_m": [ + [ + 0.5917454268192155, + 0.288783206132043, + -0.028591597197474505 + ], + [ + 0.591472963356765, + 0.3129164593535238, + -0.02973012088287895 + ], + [ + 0.615238182519826, + 0.31219735311195274, + -0.02802432546370642 + ], + [ + 0.615783489398412, + 0.28837349403400675, + -0.027027214010711318 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.98554667839739, + "weight": 0.2691 + }, + { + "marker_id": 73, + "link": "Board", + "set": "A0", + "position_m": [ + 0.22200843020084798, + 0.33710330353962437, + -0.029904556917160468 + ], + "position_mm": [ + 222.00843020084798, + 337.1033035396244, + -29.904556917160466 + ], + "normal": [ + -0.043701850879775406, + 0.11255686025897471, + 0.9926837872345471 + ], + "corners_m": [ + [ + 0.20992249163063356, + 0.325732727662749, + -0.03007067819310336 + ], + [ + 0.20980677385749943, + 0.34991764719222085, + -0.030935254146158192 + ], + [ + 0.23360639197189054, + 0.3507194763023412, + -0.031739978294341 + ], + [ + 0.23469806334336846, + 0.3220433630011865, + -0.02687231703503933 + ] + ], + "num_cameras": 2, + "edge_length_mm": 25.5965694905624, + "weight": 0.1477 + }, + { + "marker_id": 75, + "link": "Board", + "set": "A0", + "position_m": [ + -0.027074599472136106, + 0.19916488636021012, + -0.02877591846507313 + ], + "position_mm": [ + -27.074599472136107, + 199.16488636021012, + -28.77591846507313 + ], + "normal": [ + -0.060269048988742635, + 0.14192178920825413, + 0.9880414199222219 + ], + "corners_m": [ + [ + -0.038909158064018304, + 0.1866302269096352, + -0.027634753703519806 + ], + [ + -0.04053684989257057, + 0.21409467918510994, + -0.03180576995266629 + ], + [ + -0.015567675026538825, + 0.21179674536791643, + -0.029824508346680097 + ], + [ + -0.013284714905416722, + 0.1841378939781789, + -0.025838641857426316 + ] + ], + "num_cameras": 2, + "edge_length_mm": 26.70636900033261, + "weight": 0.1438 + }, + { + "marker_id": 76, + "link": "Board", + "set": "A0", + "position_m": [ + 0.686168216982405, + 0.16467989272358155, + -0.026465763850839603 + ], + "position_mm": [ + 686.168216982405, + 164.67989272358156, + -26.465763850839604 + ], + "normal": [ + -0.083228950366003, + 0.009981962855378668, + 0.9964804575296635 + ], + "corners_m": [ + [ + 0.6741234343707012, + 0.15340054085121616, + -0.02742396410885278 + ], + [ + 0.6744428187289844, + 0.17736376984110447, + -0.027505080609578625 + ], + [ + 0.6978840379394718, + 0.17579154609631423, + -0.025666656601862375 + ], + [ + 0.6982225768904631, + 0.15216371410569143, + -0.025267354083064637 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.84796706085212, + "weight": 0.3711 + }, + { + "marker_id": 77, + "link": "Arm1", + "set": "A0", + "position_m": [ + 0.017533041646108926, + 0.19485981900302657, + -0.028252701964302823 + ], + "position_mm": [ + 17.533041646108927, + 194.85981900302656, + -28.252701964302823 + ], + "normal": [ + -0.023326481272283064, + 0.14875638477723804, + 0.9885987119450744 + ], + "corners_m": [ + [ + 0.0057795122646528705, + 0.1819144985879058, + -0.027210072698620608 + ], + [ + 0.005006470128538473, + 0.2081839163321546, + -0.02991436817993723 + ], + [ + 0.029046817158157993, + 0.2089680286491458, + -0.030683832983121048 + ], + [ + 0.030299367033086364, + 0.1803728324429001, + -0.02520253399553241 + ] + ], + "num_cameras": 2, + "edge_length_mm": 26.069470655147647, + "weight": 0.338 + }, + { + "marker_id": 79, + "link": "Board", + "set": "A0", + "position_m": [ + 0.3115317050756261, + -0.1579553560163563, + -0.026950013661941326 + ], + "position_mm": [ + 311.5317050756261, + -157.9553560163563, + -26.950013661941327 + ], + "normal": [ + 0.029187814313650112, + -0.011632113912710575, + 0.9995062608215687 + ], + "corners_m": [ + [ + 0.29935733696111727, + -0.16950655538155907, + -0.027204084287352263 + ], + [ + 0.29925299722852533, + -0.14708134218555233, + -0.025992880105390095 + ], + [ + 0.32376221642285546, + -0.14529758431728504, + -0.02758981376926272 + ], + [ + 0.32375426969000654, + -0.16993594218102875, + -0.02701327648576023 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.032644633408122, + "weight": 0.4183 + }, + { + "marker_id": 82, + "link": "Board", + "set": "A0", + "position_m": [ + 0.21940163374697527, + 0.30083771316769004, + -0.030043099626010206 + ], + "position_mm": [ + 219.40163374697528, + 300.83771316769, + -30.043099626010207 + ], + "normal": [ + 0.0036494884939472097, + 0.10199852853466704, + 0.9947778553076537 + ], + "corners_m": [ + [ + 0.20772400033219268, + 0.28789960708143014, + -0.02898448157635884 + ], + [ + 0.2071918090503518, + 0.31382685071797095, + -0.031015946051088008 + ], + [ + 0.23093082071159765, + 0.3142837624574587, + -0.03176507411459503 + ], + [ + 0.231759904893759, + 0.2873406324139003, + -0.028406896761998958 + ] + ], + "num_cameras": 2, + "edge_length_mm": 25.245243690127953, + "weight": 0.2808 + }, + { + "marker_id": 85, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5040463958504396, + -0.31336231476133536, + -0.027373823799206286 + ], + "position_mm": [ + 504.04639585043964, + -313.36231476133537, + -27.373823799206285 + ], + "normal": [ + -0.0014665589974376715, + -0.03538113682867272, + 0.9993728155005108 + ], + "corners_m": [ + [ + 0.4918726464590908, + -0.3252295468806825, + -0.027754709813985857 + ], + [ + 0.4919156531520482, + -0.30133223978101514, + -0.027022502091001807 + ], + [ + 0.5162917545266495, + -0.3015127745463712, + -0.026879496240494488 + ], + [ + 0.51610552926397, + -0.32537469783727235, + -0.027838587051343 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.100282165683154, + "weight": 0.6116 + }, + { + "marker_id": 88, + "link": "Board", + "set": "A0", + "position_m": [ + 0.7672044800845393, + 0.31341295874776876, + -0.025607654672699452 + ], + "position_mm": [ + 767.2044800845393, + 313.41295874776876, + -25.607654672699454 + ], + "normal": [ + 0.05089179903487284, + -0.0006574170571220783, + 0.998703956432439 + ], + "corners_m": [ + [ + 0.7553774296523968, + 0.3007474673533542, + -0.024929893432296468 + ], + [ + 0.7549248281758681, + 0.3246704379375756, + -0.02505757010946504 + ], + [ + 0.7791016062658052, + 0.32531091552577696, + -0.026117275271206494 + ], + [ + 0.7794140562440872, + 0.30292301417436807, + -0.026325879877829812 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.675582356861177, + "weight": 0.276 + }, + { + "marker_id": 90, + "link": "Board", + "set": "A0", + "position_m": [ + 0.6448974505756251, + 0.31586422632017813, + -0.027757926165580843 + ], + "position_mm": [ + 644.897450575625, + 315.86422632017815, + -27.757926165580844 + ], + "normal": [ + -0.004760316940534059, + -0.03483117739756403, + 0.9993818731914869 + ], + "corners_m": [ + [ + 0.6330387136280773, + 0.30449153979983246, + -0.02837750544304187 + ], + [ + 0.6325546104105302, + 0.32737407080852227, + -0.02725376997307296 + ], + [ + 0.6571222817642531, + 0.3274090540736802, + -0.02745682207338329 + ], + [ + 0.6568741964996401, + 0.3041822405986776, + -0.027943607172825256 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.639608320441152, + "weight": 0.2878 + }, + { + "marker_id": 91, + "link": "Board", + "set": "A0", + "position_m": [ + 0.7250587640676273, + 0.32678855113021327, + -0.02689663640033165 + ], + "position_mm": [ + 725.0587640676273, + 326.78855113021325, + -26.89663640033165 + ], + "normal": [ + -0.04318027586624513, + -0.006771542643317142, + 0.999044348358142 + ], + "corners_m": [ + [ + 0.7132299108966134, + 0.315308232564805, + -0.027699234186866137 + ], + [ + 0.7131780042897148, + 0.33877257811508166, + -0.02711304641017173 + ], + [ + 0.7367726033150213, + 0.33858102618361297, + -0.026520818559968445 + ], + [ + 0.7370545377691594, + 0.3144923676573534, + -0.026253446444320285 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.76217961104756, + "weight": 0.2868 + }, + { + "marker_id": 92, + "link": "Board", + "set": "A0", + "position_m": [ + 0.6449679140075476, + -0.186594968479296, + -0.026033158149770537 + ], + "position_mm": [ + 644.9679140075476, + -186.594968479296, + -26.033158149770536 + ], + "normal": [ + 0.030722418106270386, + -0.013932712492663703, + 0.9994308443050476 + ], + "corners_m": [ + [ + 0.6329311637180297, + -0.19875124341953718, + -0.025862499685849274 + ], + [ + 0.6326221186577238, + -0.17472654762561257, + -0.025458180919722403 + ], + [ + 0.6569506990804731, + -0.17451275151102635, + -0.02626327540261804 + ], + [ + 0.6573676745739637, + -0.19838933136100775, + -0.026548676590892432 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.175917430955543, + "weight": 0.5327 + }, + { + "marker_id": 94, + "link": "Board", + "set": "A0", + "position_m": [ + 0.8752155914239963, + 0.16895247734777097, + -0.022694111670332157 + ], + "position_mm": [ + 875.2155914239963, + 168.95247734777098, + -22.69411167033216 + ], + "normal": [ + 0.07264343962042422, + 0.05484626840750084, + 0.9958487924990853 + ], + "corners_m": [ + [ + 0.8625063599586893, + 0.1550195678063951, + -0.02072284440585757 + ], + [ + 0.8632543742574026, + 0.1801549797512844, + -0.02273316596389743 + ], + [ + 0.8872365172483422, + 0.18163426094663188, + -0.023944518113655822 + ], + [ + 0.887865114231551, + 0.15900110088677244, + -0.023375918197917803 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.43504784921656, + "weight": 0.2058 + }, + { + "marker_id": 95, + "link": "Board", + "set": "A0", + "position_m": [ + 0.18479043870759893, + -0.27315602348294, + -0.02782739984865855 + ], + "position_mm": [ + 184.79043870759892, + -273.15602348294, + -27.827399848658548 + ], + "normal": [ + -0.002579825446238624, + 0.02726550462604094, + 0.9996248980283327 + ], + "corners_m": [ + [ + 0.17247676062067044, + -0.2852620535836137, + -0.026955089638876335 + ], + [ + 0.17285464088286517, + -0.26071582590933035, + -0.02878450692434689 + ], + [ + 0.1968288308590673, + -0.26120872962765274, + -0.027525887828215287 + ], + [ + 0.19700152246779273, + -0.28543748481116327, + -0.028044115003195695 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.353484797949534, + "weight": 0.6551 + }, + { + "marker_id": 96, + "link": "Board", + "set": "A0", + "position_m": [ + 0.36917978083075315, + -0.18571093456176813, + -0.027508985929362476 + ], + "position_mm": [ + 369.17978083075315, + -185.7109345617681, + -27.508985929362474 + ], + "normal": [ + 0.0226180836020813, + 0.01808125908349917, + 0.9995806572578947 + ], + "corners_m": [ + [ + 0.3570532901858247, + -0.1982010433165354, + -0.027210149464167235 + ], + [ + 0.3572548620308549, + -0.17395335003479562, + -0.027250036998353155 + ], + [ + 0.38127867642806795, + -0.1732282253157512, + -0.028210342916630306 + ], + [ + 0.381132294678265, + -0.19746111957999027, + -0.027365414338299195 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.160357116837623, + "weight": 0.6202 + }, + { + "marker_id": 97, + "link": "Board", + "set": "A0", + "position_m": [ + 0.3033590984973789, + -0.35953686405317076, + -0.026352703327591136 + ], + "position_mm": [ + 303.3590984973789, + -359.53686405317075, + -26.352703327591136 + ], + "normal": [ + -0.005020762538681978, + 0.02288035076986625, + 0.9997256030992595 + ], + "corners_m": [ + [ + 0.29107409864527745, + -0.3713506203257764, + -0.025721189696401792 + ], + [ + 0.29141696384733057, + -0.3464573552275517, + -0.02713686267132716 + ], + [ + 0.31557985914200815, + -0.3479934555289166, + -0.026120474375875016 + ], + [ + 0.3153654723548994, + -0.37234602513043813, + -0.026432286566760572 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.461627023571666, + "weight": 0.5856 + }, + { + "marker_id": 98, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5771533147296002, + 0.3157373538722484, + -0.02924445680494865 + ], + "position_mm": [ + 577.1533147296002, + 315.7373538722484, + -29.24445680494865 + ], + "normal": [ + -0.022742670453084004, + 0.044334174344010546, + 0.9987578545002274 + ], + "corners_m": [ + [ + 0.5653524925354336, + 0.30398270193645355, + -0.02958538456257603 + ], + [ + 0.5648914429576586, + 0.32733249401808456, + -0.02946710593292604 + ], + [ + 0.5894740368667811, + 0.32861625953930595, + -0.030053673187712827 + ], + [ + 0.5888952865585277, + 0.3030179599951494, + -0.027871663536579723 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.32503988998394, + "weight": 0.2761 + }, + { + "marker_id": 100, + "link": "Board", + "set": "A0", + "position_m": [ + 0.8038022202042736, + 0.16901072581912463, + -0.024927923610123078 + ], + "position_mm": [ + 803.8022202042736, + 169.01072581912462, + -24.927923610123077 + ], + "normal": [ + 0.018830483099388354, + -0.016568681904750915, + 0.9996853963553649 + ], + "corners_m": [ + [ + 0.7923247907624538, + 0.1578301278410569, + -0.025113812375148287 + ], + [ + 0.7914662994677752, + 0.17998050150497774, + -0.024305347144062035 + ], + [ + 0.8157424492572769, + 0.18066919918624097, + -0.02515941595084586 + ], + [ + 0.8156753413295881, + 0.15756307474422288, + -0.025133118970436134 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.23524854390913, + "weight": 0.37 + }, + { + "marker_id": 103, + "link": "Board", + "set": "A0", + "position_m": [ + 0.10463906139156691, + -0.1863723941529893, + -0.02712433454634665 + ], + "position_mm": [ + 104.63906139156691, + -186.3723941529893, + -27.12433454634665 + ], + "normal": [ + -0.0005764344443752469, + 0.006904745019520264, + 0.9999759958216732 + ], + "corners_m": [ + [ + 0.09242111468036332, + -0.19865643430113875, + -0.026637644885844445 + ], + [ + 0.09258302909997915, + -0.1739634420314617, + -0.027626107772462095 + ], + [ + 0.11684911697218134, + -0.17418973941444157, + -0.026788697286611096 + ], + [ + 0.11670298481374382, + -0.1986799608649152, + -0.027444888240468954 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.447407274197904, + "weight": 0.5757 + }, + { + "marker_id": 104, + "link": "Board", + "set": "A0", + "position_m": [ + 0.8271675034587607, + 0.23540837769401796, + -0.02477399214837287 + ], + "position_mm": [ + 827.1675034587606, + 235.40837769401796, + -24.773992148372873 + ], + "normal": [ + 0.08283750749451468, + 0.04199251650901891, + 0.9956779478874362 + ], + "corners_m": [ + [ + 0.8151517151002325, + 0.22159007735691677, + -0.02331466128176305 + ], + [ + 0.8146075172474999, + 0.2460622455354825, + -0.024059700022098243 + ], + [ + 0.8396192077280688, + 0.24938425915204626, + -0.02651696584296972 + ], + [ + 0.8392915737592415, + 0.22459692873162623, + -0.02520464144666048 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.766046412442012, + "weight": 0.344 + }, + { + "marker_id": 105, + "link": "Board", + "set": "A0", + "position_m": [ + 0.5245010851959606, + -0.2668786459287793, + -0.027453580235859126 + ], + "position_mm": [ + 524.5010851959606, + -266.8786459287793, + -27.453580235859125 + ], + "normal": [ + -0.0008259577306191554, + 0.010851946113643457, + 0.9999407747758733 + ], + "corners_m": [ + [ + 0.5127511875417742, + -0.2789004264360081, + -0.027329533745955387 + ], + [ + 0.5122751860427066, + -0.25481657391093715, + -0.027597820509233952 + ], + [ + 0.536424491908054, + -0.2545361859601635, + -0.027574526815968246 + ], + [ + 0.5365534752913078, + -0.27926139740800837, + -0.027312439872278927 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.193240623441017, + "weight": 0.7985 + }, + { + "marker_id": 118, + "link": "unknown", + "set": "", + "position_m": [ + 0.3230691862637467, + -0.17422049806442172, + 0.04725562020687358 + ], + "position_mm": [ + 323.0691862637467, + -174.22049806442172, + 47.25562020687358 + ], + "normal": [ + 0.013952922143823326, + -0.9942312705578507, + 0.10634611703569845 + ], + "corners_m": [ + [ + 0.3349417130613985, + -0.17553232168162322, + 0.03497916935007513 + ], + [ + 0.3109541269729947, + -0.17554011669253738, + 0.03498457194889316 + ], + [ + 0.311064832718754, + -0.17321410673730636, + 0.059745366871430866 + ], + [ + 0.3353160723018397, + -0.17259544714622, + 0.05931337265709516 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.408565585699137, + "weight": 0.5442 + }, + { + "marker_id": 122, + "link": "Ellbow", + "set": "", + "position_m": [ + 0.36007471693907533, + -0.1734507548515825, + 0.04618423704607589 + ], + "position_mm": [ + 360.07471693907536, + -173.4507548515825, + 46.184237046075886 + ], + "normal": [ + 0.011141707060048817, + -0.99428798153039, + 0.10614740763679043 + ], + "corners_m": [ + [ + 0.37240494404899305, + -0.17441541066699165, + 0.03436722077542395 + ], + [ + 0.3484805964090285, + -0.175097754722769, + 0.0335141214870975 + ], + [ + 0.3473329152263175, + -0.1722262333133193, + 0.057502902698665495 + ], + [ + 0.3720804120719623, + -0.17206362070325007, + 0.05935270322311661 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.512909883673583, + "weight": 0.5285 + }, + { + "marker_id": 143, + "link": "Arm2", + "set": "", + "position_m": [ + 0.33981054963127205, + -0.13806245105138643, + 0.22948019727595487 + ], + "position_mm": [ + 339.81054963127207, + -138.06245105138643, + 229.48019727595488 + ], + "normal": [ + -0.7318287455373648, + -0.6766263576221342, + 0.0812616722459672 + ], + "corners_m": [ + [ + 0.34762864087416784, + -0.14784457667825643, + 0.21823335329705618 + ], + [ + 0.33135227599202377, + -0.13050469489062813, + 0.2164408200798731 + ], + [ + 0.3319336466231742, + -0.12817210420152697, + 0.24069166835995076 + ], + [ + 0.3483276350357225, + -0.14572842843513414, + 0.24255494736693956 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.183884952933447, + "weight": 0.5659 + }, + { + "marker_id": 144, + "link": "Arm2", + "set": "", + "position_m": [ + 0.36294623514556434, + -0.15686121783821494, + 0.15804923012695163 + ], + "position_mm": [ + 362.94623514556434, + -156.86121783821494, + 158.04923012695164 + ], + "normal": [ + -0.03961155666264203, + -0.9930883813158348, + 0.11048253922795877 + ], + "corners_m": [ + [ + 0.3747523294557626, + -0.1587336421866692, + 0.1457638570190762 + ], + [ + 0.3504334829666493, + -0.15765021825294326, + 0.1461677763341974 + ], + [ + 0.3510747571402435, + -0.15501333481422458, + 0.17070422806466942 + ], + [ + 0.37552437101960223, + -0.1560476760990227, + 0.16956105908986352 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.372824845204892, + "weight": 0.6521 + }, + { + "marker_id": 147, + "link": "FingerA", + "set": "", + "position_m": [ + 0.3828159063902664, + -0.14366724006486958, + 0.2266037155331142 + ], + "position_mm": [ + 382.81590639026643, + -143.6672400648696, + 226.6037155331142 + ], + "normal": [ + 0.4282712681448144, + -0.901202892517993, + 0.06646102165055302 + ], + "corners_m": [ + [ + 0.3929084320814041, + -0.13965522237004693, + 0.21384856404250155 + ], + [ + 0.37191586534199633, + -0.14984176216434011, + 0.21524315922006673 + ], + [ + 0.37222911001480485, + -0.1476075410025408, + 0.23934139744812052 + ], + [ + 0.3942102181228603, + -0.13756443472255045, + 0.23798174142176798 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.010576110817258, + "weight": 0.7036 + }, + { + "marker_id": 148, + "link": "Arm2", + "set": "", + "position_m": [ + 0.36684427389063146, + -0.14242844255483006, + 0.2646551505141377 + ], + "position_mm": [ + 366.8442738906315, + -142.42844255483007, + 264.6551505141377 + ], + "normal": [ + -0.04437130239640494, + -0.994928705935303, + 0.09026659199033793 + ], + "corners_m": [ + [ + 0.3784559988718673, + -0.14396071114446288, + 0.2520022727471954 + ], + [ + 0.35428507095127926, + -0.14307658956201733, + 0.25279010149371905 + ], + [ + 0.355303694411923, + -0.1406210734486656, + 0.2774443654651806 + ], + [ + 0.3793323313274563, + -0.14205539606417447, + 0.27638386235045576 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.390867522653068, + "weight": 0.8107 + }, + { + "marker_id": 178, + "link": "FingerB", + "set": "", + "position_m": [ + 0.2873083816732559, + -0.1204523984692931, + 0.31528984233795565 + ], + "position_mm": [ + 287.3083816732559, + -120.4523984692931, + 315.28984233795563 + ], + "normal": [ + -0.6638714507770289, + -0.7303539125355842, + -0.1608037912711233 + ], + "corners_m": [ + [ + 0.2791791678330686, + -0.11588709688603212, + 0.3288227301751599 + ], + [ + 0.2946672649472234, + -0.12945514503467603, + 0.32508671529482486 + ], + [ + 0.2963685837567795, + -0.1255521206752735, + 0.3016943756313494 + ], + [ + 0.2790185101559521, + -0.11091523128119078, + 0.30555554825048836 + ] + ], + "num_cameras": 2, + "edge_length_mm": 22.880483209351958, + "weight": 0.4469 + }, + { + "marker_id": 179, + "link": "FingerB", + "set": "", + "position_m": [ + 0.3296122322552461, + -0.14032302981080244, + 0.31306995291133316 + ], + "position_mm": [ + 329.6122322552461, + -140.32302981080244, + 313.06995291133313 + ], + "normal": [ + -0.6954025319175863, + -0.1517710390500229, + 0.7024107561165952 + ], + "corners_m": [ + [ + 0.3157250769646444, + -0.13554525593524452, + 0.3014883363233178 + ], + [ + 0.33010118541566774, + -0.12370263971572265, + 0.31623899315396775 + ], + [ + 0.34515021801455026, + -0.1472429806053301, + 0.32774278667648726 + ], + [ + 0.32747244862612207, + -0.15480124298691247, + 0.3068096954915598 + ] + ], + "num_cameras": 2, + "edge_length_mm": 26.393090516707705, + "weight": 0.486 + }, + { + "marker_id": 198, + "link": "Arm1", + "set": "", + "position_m": [ + 0.26881580585664533, + -0.05379457884938547, + 0.08452042057809034 + ], + "position_mm": [ + 268.81580585664534, + -53.794578849385466, + 84.52042057809034 + ], + "normal": [ + 0.017566666136188274, + 0.025865435612564824, + 0.9995110762174835 + ], + "corners_m": [ + [ + 0.2568793403490033, + -0.04140438201744493, + 0.0842559350343917 + ], + [ + 0.2799691269017331, + -0.04119455036867765, + 0.08415017912000738 + ], + [ + 0.28174308352469857, + -0.0663428494455957, + 0.08447817687616997 + ], + [ + 0.2566716726511463, + -0.0662365335658236, + 0.08519739128179227 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.559178479483467, + "weight": 0.4756 + }, + { + "marker_id": 200, + "link": "unknown", + "set": "", + "position_m": [ + 0.1996092097261793, + -0.02861533294246476, + 0.1100305655090917 + ], + "position_mm": [ + 199.6092097261793, + -28.61533294246476, + 110.0305655090917 + ], + "normal": [ + -0.06794203786927566, + -0.01026410858882998, + 0.9976364706470222 + ], + "corners_m": [ + [ + 0.18669497555188935, + -0.017711645058359447, + 0.1090409931624479 + ], + [ + 0.21096853472627572, + -0.0173795415596954, + 0.11115529002428795 + ], + [ + 0.2124639298426622, + -0.038875797606562075, + 0.1105640599858955 + ], + [ + 0.18830939878389, + -0.04049434754524211, + 0.1093619188637354 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.251164764339194, + "weight": 0.5331 + }, + { + "marker_id": 204, + "link": "unknown", + "set": "", + "position_m": [ + 0.19888645661810428, + 0.11609234959439481, + 0.12031234222159706 + ], + "position_mm": [ + 198.8864566181043, + 116.0923495943948, + 120.31234222159706 + ], + "normal": [ + 0.05577045254037239, + 0.0376096693851038, + 0.99773501962805 + ], + "corners_m": [ + [ + 0.1869960309188958, + 0.12775795152365196, + 0.1205098999222131 + ], + [ + 0.2103543652276836, + 0.1290856044901338, + 0.11920903513340543 + ], + [ + 0.21095616739052567, + 0.10450359572254055, + 0.12004744709524401 + ], + [ + 0.18723926293531196, + 0.10302224664125299, + 0.12148298673552568 + ] + ], + "num_cameras": 2, + "edge_length_mm": 24.149577827512992, + "weight": 0.3494 + }, + { + "marker_id": 208, + "link": "Board", + "set": "rail", + "position_m": [ + 0.626322335509323, + -0.09856325231875387, + -0.006780239265140948 + ], + "position_mm": [ + 626.322335509323, + -98.56325231875387, + -6.780239265140948 + ], + "normal": [ + 0.0038301249004609934, + -0.013340539198762658, + 0.9999036754393562 + ], + "corners_m": [ + [ + 0.6140048509576447, + -0.08704594956957819, + -0.0066087535914969835 + ], + [ + 0.6379544707962286, + -0.0867506888241949, + -0.006637025432582061 + ], + [ + 0.638770850846449, + -0.10975632736546362, + -0.007007083099927893 + ], + [ + 0.6145591694369701, + -0.11070004351577878, + -0.0068680949365568554 + ] + ], + "num_cameras": 3, + "edge_length_mm": 23.716756037695387, + "weight": 0.5365 + }, + { + "marker_id": 210, + "link": "Board", + "set": "rail", + "position_m": [ + 0.1297589855328959, + -0.007256398983754079, + -0.006272767443548488 + ], + "position_mm": [ + 129.75898553289588, + -7.256398983754079, + -6.272767443548489 + ], + "normal": [ + 0.027999482572265002, + 0.010019712811658033, + 0.9995577193593461 + ], + "corners_m": [ + [ + 0.11794387127735227, + 0.003845860262667567, + -0.00573296267127323 + ], + [ + 0.1414686146989034, + 0.004825664602823929, + -0.007030208468504494 + ], + [ + 0.14152659890551933, + -0.018788427286291574, + -0.006176679615872469 + ], + [ + 0.11809685724980853, + -0.01890869351421624, + -0.006151219018543758 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.34985192204316, + "weight": 0.4052 + }, + { + "marker_id": 214, + "link": "unknown", + "set": "", + "position_m": [ + 0.5321503714495919, + -0.007884081286054181, + -0.007329274617212688 + ], + "position_mm": [ + 532.1503714495918, + -7.884081286054181, + -7.329274617212688 + ], + "normal": [ + -0.02081390498977253, + 0.05530732642929549, + 0.9982524134718234 + ], + "corners_m": [ + [ + 0.5203474515703065, + 0.004160282873375151, + -0.008333118644696751 + ], + [ + 0.5440829433244703, + 0.004178347222133186, + -0.007657245398997705 + ], + [ + 0.544160209503039, + -0.019790375120851217, + -0.006509221543962739 + ], + [ + 0.5200108814005516, + -0.02008458011887385, + -0.006817512881193558 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.047262986491518, + "weight": 0.3908 + }, + { + "marker_id": 217, + "link": "Board", + "set": "rail", + "position_m": [ + 0.7302361278755709, + -0.008433604186836339, + -0.004997346207152399 + ], + "position_mm": [ + 730.2361278755709, + -8.43360418683634, + -4.9973462071523995 + ], + "normal": [ + -0.018329909691558396, + -0.01880878052863644, + 0.9996550626019582 + ], + "corners_m": [ + [ + 0.7186528279665371, + 0.0040809595742825585, + -0.005425190588085155 + ], + [ + 0.7423252482965719, + 0.002270185490187872, + -0.004099495441306945 + ], + [ + 0.7420597703320663, + -0.02033743777526726, + -0.005471233849007794 + ], + [ + 0.7179066649071084, + -0.019748124036548523, + -0.004993464950209702 + ] + ], + "num_cameras": 2, + "edge_length_mm": 23.609751068891896, + "weight": 0.545 + }, + { + "marker_id": 229, + "link": "Arm1", + "set": "", + "position_m": [ + 0.2711508635186137, + -0.14218885909938545, + 0.0792725401497974 + ], + "position_mm": [ + 271.15086351861373, + -142.18885909938544, + 79.2725401497974 + ], + "normal": [ + 0.018274420170428296, + -0.030085243946788468, + 0.9993802697992876 + ], + "corners_m": [ + [ + 0.2587018326406737, + -0.13083421375457843, + 0.07976007350657924 + ], + [ + 0.28302225568153916, + -0.12998919911719906, + 0.0795061997362513 + ], + [ + 0.28375656978944785, + -0.1533084995889226, + 0.0786249196622942 + ], + [ + 0.2591227959627941, + -0.15462352393684178, + 0.07919896769406488 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.039774323286583, + "weight": 0.5435 + }, + { + "marker_id": 243, + "link": "Arm1", + "set": "", + "position_m": [ + 0.2705163827256898, + -0.17575924571402637, + 0.04277352660261536 + ], + "position_mm": [ + 270.51638272568977, + -175.75924571402638, + 42.77352660261536 + ], + "normal": [ + 0.0037969251175363765, + -0.9993250429938724, + -0.036538223888788246 + ], + "corners_m": [ + [ + 0.2586799590782121, + -0.17652327643438798, + 0.05494635713764645 + ], + [ + 0.28302458903333044, + -0.17585751655337264, + 0.05433147049182646 + ], + [ + 0.2825609080510037, + -0.17554427907569686, + 0.030698639174219697 + ], + [ + 0.25780007474021294, + -0.17511191079264812, + 0.031117639606768836 + ] + ], + "num_cameras": 3, + "edge_length_mm": 24.163947368976483, + "weight": 0.3948 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam0.jpg b/data/homing/20260625_175916/cam0.jpg new file mode 100644 index 0000000..4397526 Binary files /dev/null and b/data/homing/20260625_175916/cam0.jpg differ diff --git a/data/homing/20260625_175916/cam0_aruco_detection.json b/data/homing/20260625_175916/cam0_aruco_detection.json new file mode 100644 index 0000000..a53f694 --- /dev/null +++ b/data/homing/20260625_175916/cam0_aruco_detection.json @@ -0,0 +1,2628 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:59:21Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam0", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam0_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_175916/cam0.jpg", + "image_sha256": "00fb7da9b5f999e54b809e4dc6d16f0f94d320feadd839d2a6e9440bf2a3f91f", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 38, + "num_rejected_candidates": 21 + }, + "detections": [ + { + "observation_id": "20fa87f9-a41f-42b2-acaa-e32115af3da5", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 802.0, + 214.0 + ], + [ + 756.0, + 214.0 + ], + [ + 757.0, + 166.0 + ], + [ + 804.0, + 167.0 + ] + ], + "center_px": [ + 779.75, + 190.25 + ], + "quality": { + "area_px": 2209.5, + "perimeter_px": 188.06358337402344, + "sharpness": { + "laplacian_var": 3317.9683455616355 + }, + "contrast": { + "p05": 85.0, + "p95": 251.0, + "dynamic_range": 166.0, + "mean_gray": 138.22207621550592, + "std_gray": 62.97706723505798 + }, + "geometry": { + "distance_to_center_norm": 0.40211379528045654, + "distance_to_border_px": 166.0 + }, + "edge_ratio": 1.04370465485946, + "edge_lengths_px": [ + 46.0, + 48.010414123535156, + 47.01063537597656, + 47.04253387451172 + ] + }, + "confidence": 0.9581254575650571 + }, + { + "observation_id": "49b5c530-b5a5-43e8-8c6a-438d5b98ba86", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 798.0, + 410.0 + ], + [ + 753.0, + 410.0 + ], + [ + 754.0, + 367.0 + ], + [ + 799.0, + 368.0 + ] + ], + "center_px": [ + 776.0, + 388.75 + ], + "quality": { + "area_px": 1913.0, + "perimeter_px": 175.03463745117188, + "sharpness": { + "laplacian_var": 4328.683950249926 + }, + "contrast": { + "p05": 59.0, + "p95": 252.0, + "dynamic_range": 193.0, + "mean_gray": 140.30672926447573, + "std_gray": 80.76554566334332 + }, + "geometry": { + "distance_to_center_norm": 0.20471994578838348, + "distance_to_border_px": 367.0 + }, + "edge_ratio": 1.0713894494299914, + "edge_lengths_px": [ + 45.0, + 43.011627197265625, + 45.0111083984375, + 42.01190185546875 + ] + }, + "confidence": 0.9333674141854089 + }, + { + "observation_id": "9f9529ae-3b2c-4cbd-a922-725c7240cb59", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 650.0, + 928.0 + ], + [ + 652.0, + 892.0 + ], + [ + 701.0, + 892.0 + ], + [ + 701.0, + 930.0 + ] + ], + "center_px": [ + 676.0, + 910.5 + ], + "quality": { + "area_px": 1851.0, + "perimeter_px": 174.09471130371094, + "sharpness": { + "laplacian_var": 2569.794597701358 + }, + "contrast": { + "p05": 7.0, + "p95": 173.0, + "dynamic_range": 166.0, + "mean_gray": 83.53302253302253, + "std_gray": 70.11345199859693 + }, + "geometry": { + "distance_to_center_norm": 0.54000324010849, + "distance_to_border_px": 30.0 + }, + "edge_ratio": 1.4155727582742472, + "edge_lengths_px": [ + 36.055511474609375, + 49.0, + 38.0, + 51.03919982910156 + ] + }, + "confidence": 0.42385670146087856 + }, + { + "observation_id": "695f335c-4e4a-4cc2-b551-6c60dd60faf3", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 451.0, + 941.0 + ], + [ + 458.0, + 906.0 + ], + [ + 508.0, + 903.0 + ], + [ + 501.0, + 939.0 + ] + ], + "center_px": [ + 479.5, + 922.25 + ], + "quality": { + "area_px": 1757.5, + "perimeter_px": 172.49728393554688, + "sharpness": { + "laplacian_var": 2280.3395732430286 + }, + "contrast": { + "p05": 5.0, + "p95": 165.25, + "dynamic_range": 160.25, + "mean_gray": 55.73829431438127, + "std_gray": 61.66145219982772 + }, + "geometry": { + "distance_to_center_norm": 0.5880919098854065, + "distance_to_border_px": 19.0 + }, + "edge_ratio": 1.4033487297181007, + "edge_lengths_px": [ + 35.693138122558594, + 50.08992004394531, + 36.67424011230469, + 50.03998565673828 + ] + }, + "confidence": 0.27078087716396265 + }, + { + "observation_id": "afeba579-6f18-43f9-8a75-b622b2848155", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1059.0, + 860.0 + ], + [ + 1049.0, + 827.0 + ], + [ + 1098.0, + 827.0 + ], + [ + 1110.0, + 861.0 + ] + ], + "center_px": [ + 1079.0, + 843.75 + ], + "quality": { + "area_px": 1669.5, + "perimeter_px": 170.5471954345703, + "sharpness": { + "laplacian_var": 2980.6806918718153 + }, + "contrast": { + "p05": 6.0, + "p95": 165.0, + "dynamic_range": 159.0, + "mean_gray": 98.48422001803426, + "std_gray": 63.19609635883989 + }, + "geometry": { + "distance_to_center_norm": 0.7126480937004089, + "distance_to_border_px": 99.0 + }, + "edge_ratio": 1.4793219944468647, + "edge_lengths_px": [ + 34.48188018798828, + 49.0, + 36.055511474609375, + 51.009803771972656 + ] + }, + "confidence": 0.6759853525830334 + }, + { + "observation_id": "b5711da0-7a22-4901-a872-809e6167313e", + "type": "aruco", + "marker_id": 179, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 681.0, + 125.0 + ], + [ + 708.0, + 90.0 + ], + [ + 744.0, + 74.0 + ], + [ + 703.0, + 122.0 + ] + ], + "center_px": [ + 709.0, + 102.75 + ], + "quality": { + "area_px": 880.5, + "perimeter_px": 168.92996406555176, + "sharpness": { + "laplacian_var": 9791.714060058592 + }, + "contrast": { + "p05": 17.0, + "p95": 202.0, + "dynamic_range": 185.0, + "mean_gray": 104.8171875, + "std_gray": 66.3843874121758 + }, + "geometry": { + "distance_to_center_norm": 0.47938528656959534, + "distance_to_border_px": 74.0 + }, + "edge_ratio": 2.8430906299697374, + "edge_lengths_px": [ + 44.204071044921875, + 39.39543151855469, + 63.12685775756836, + 22.203603744506836 + ] + }, + "confidence": 0.2064654548160669 + }, + { + "observation_id": "8f182091-1178-405e-9601-ba1d7148b94d", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 830.0, + 279.0 + ], + [ + 791.0, + 285.0 + ], + [ + 791.0, + 240.0 + ], + [ + 831.0, + 235.0 + ] + ], + "center_px": [ + 810.75, + 259.75 + ], + "quality": { + "area_px": 1755.0, + "perimeter_px": 168.78149032592773, + "sharpness": { + "laplacian_var": 3090.021531471163 + }, + "contrast": { + "p05": 30.0, + "p95": 251.0, + "dynamic_range": 221.0, + "mean_gray": 96.97870597870597, + "std_gray": 78.32350355503971 + }, + "geometry": { + "distance_to_center_norm": 0.3483569025993347, + "distance_to_border_px": 235.0 + }, + "edge_ratio": 1.1404288789390615, + "edge_lengths_px": [ + 39.458839416503906, + 45.0, + 40.31128692626953, + 44.0113639831543 + ] + }, + "confidence": 0.8768630981445312 + }, + { + "observation_id": "2b95b68d-a04a-4523-bb23-d10c8898d48c", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 729.0, + 886.0 + ], + [ + 729.0, + 852.0 + ], + [ + 777.0, + 852.0 + ], + [ + 779.0, + 885.0 + ] + ], + "center_px": [ + 753.5, + 868.75 + ], + "quality": { + "area_px": 1642.0, + "perimeter_px": 165.07054901123047, + "sharpness": { + "laplacian_var": 1762.2992089123047 + }, + "contrast": { + "p05": 8.0, + "p95": 168.0, + "dynamic_range": 160.0, + "mean_gray": 46.32286995515695, + "std_gray": 53.88908861341027 + }, + "geometry": { + "distance_to_center_norm": 0.5062249898910522, + "distance_to_border_px": 74.0 + }, + "edge_ratio": 1.512678926340992, + "edge_lengths_px": [ + 34.0, + 48.0, + 33.060550689697266, + 50.0099983215332 + ] + }, + "confidence": 0.6610788202218779 + }, + { + "observation_id": "8ae7d6e9-8773-4db3-9d32-f52917609e32", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 797.0, + 598.0 + ], + [ + 755.0, + 600.0 + ], + [ + 752.0, + 562.0 + ], + [ + 796.0, + 558.0 + ] + ], + "center_px": [ + 775.0, + 579.5 + ], + "quality": { + "area_px": 1683.0, + "perimeter_px": 164.35976791381836, + "sharpness": { + "laplacian_var": 2635.4472337988886 + }, + "contrast": { + "p05": 36.25, + "p95": 228.0, + "dynamic_range": 191.75, + "mean_gray": 98.10390763765541, + "std_gray": 74.20219150751022 + }, + "geometry": { + "distance_to_center_norm": 0.20963230729103088, + "distance_to_border_px": 360.0 + }, + "edge_ratio": 1.159063122249991, + "edge_lengths_px": [ + 42.04759216308594, + 38.11823654174805, + 44.18144226074219, + 40.01249694824219 + ] + }, + "confidence": 0.8627657810894586 + }, + { + "observation_id": "b2fcfed8-920d-4b38-bb34-0e1c03ad2991", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 732.0, + 599.0 + ], + [ + 690.0, + 600.0 + ], + [ + 689.0, + 561.0 + ], + [ + 731.0, + 560.0 + ] + ], + "center_px": [ + 710.5, + 580.0 + ], + "quality": { + "area_px": 1639.0, + "perimeter_px": 162.0494384765625, + "sharpness": { + "laplacian_var": 2073.893267529733 + }, + "contrast": { + "p05": 34.0, + "p95": 223.75, + "dynamic_range": 189.75, + "mean_gray": 72.22603978300181, + "std_gray": 57.83470467762854 + }, + "geometry": { + "distance_to_center_norm": 0.15294121205806732, + "distance_to_border_px": 360.0 + }, + "edge_ratio": 1.0768743370474323, + "edge_lengths_px": [ + 42.01190185546875, + 39.0128173828125, + 42.01190185546875, + 39.0128173828125 + ] + }, + "confidence": 0.9286134561826351 + }, + { + "observation_id": "fa45dd04-c049-4f0d-b1d2-525e24a4918e", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1081.0, + 798.0 + ], + [ + 1069.0, + 770.0 + ], + [ + 1115.0, + 769.0 + ], + [ + 1128.0, + 799.0 + ] + ], + "center_px": [ + 1098.25, + 784.0 + ], + "quality": { + "area_px": 1348.5, + "perimeter_px": 156.18016052246094, + "sharpness": { + "laplacian_var": 1278.1510303894556 + }, + "contrast": { + "p05": 8.0, + "p95": 145.0, + "dynamic_range": 137.0, + "mean_gray": 32.29562433297759, + "std_gray": 41.73347757549136 + }, + "geometry": { + "distance_to_center_norm": 0.6873966455459595, + "distance_to_border_px": 152.0 + }, + "edge_ratio": 1.543199690146796, + "edge_lengths_px": [ + 30.463092803955078, + 46.010868072509766, + 32.69556427001953, + 47.01063537597656 + ] + }, + "confidence": 0.5825558453258135 + }, + { + "observation_id": "390c97a8-b0af-42b5-ae5a-584fa7a573b3", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 100.0, + 834.0 + ], + [ + 117.0, + 804.0 + ], + [ + 160.0, + 803.0 + ], + [ + 145.0, + 831.0 + ] + ], + "center_px": [ + 130.5, + 818.0 + ], + "quality": { + "area_px": 1244.0, + "perimeter_px": 154.35815620422363, + "sharpness": { + "laplacian_var": 1639.2403033846772 + }, + "contrast": { + "p05": 6.0, + "p95": 150.0, + "dynamic_range": 144.0, + "mean_gray": 56.47398843930636, + "std_gray": 55.87444290229196 + }, + "geometry": { + "distance_to_center_norm": 0.7642748355865479, + "distance_to_border_px": 100.0 + }, + "edge_ratio": 1.4198088217624683, + "edge_lengths_px": [ + 34.48188018798828, + 43.011627197265625, + 31.764760971069336, + 45.09988784790039 + ] + }, + "confidence": 0.5841161997457144 + }, + { + "observation_id": "79a12c93-2d83-4aba-a5c5-995c539604ab", + "type": "aruco", + "marker_id": 178, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 609.0, + 67.0 + ], + [ + 639.0, + 78.0 + ], + [ + 644.0, + 122.0 + ], + [ + 612.0, + 110.0 + ] + ], + "center_px": [ + 626.0, + 94.25 + ], + "quality": { + "area_px": 1302.5, + "perimeter_px": 153.51680755615234, + "sharpness": { + "laplacian_var": 4180.896034707829 + }, + "contrast": { + "p05": 13.0, + "p95": 223.0, + "dynamic_range": 210.0, + "mean_gray": 103.59375, + "std_gray": 82.41019276552983 + }, + "geometry": { + "distance_to_center_norm": 0.4825049638748169, + "distance_to_border_px": 67.0 + }, + "edge_ratio": 1.3858809683642357, + "edge_lengths_px": [ + 31.95309066772461, + 44.283180236816406, + 34.1760139465332, + 43.104522705078125 + ] + }, + "confidence": 0.6265569360969239 + }, + { + "observation_id": "c1df3aef-a3d8-4abb-a145-1bfdf0e03aed", + "type": "aruco", + "marker_id": 243, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 598.0, + 574.0 + ], + [ + 640.0, + 573.0 + ], + [ + 642.0, + 608.0 + ], + [ + 600.0, + 608.0 + ] + ], + "center_px": [ + 620.0, + 590.75 + ], + "quality": { + "area_px": 1450.0, + "perimeter_px": 153.12776947021484, + "sharpness": { + "laplacian_var": 1944.861276356666 + }, + "contrast": { + "p05": 32.150000000000006, + "p95": 225.0, + "dynamic_range": 192.85, + "mean_gray": 102.4928861788618, + "std_gray": 77.64601999419072 + }, + "geometry": { + "distance_to_center_norm": 0.14067672193050385, + "distance_to_border_px": 352.0 + }, + "edge_ratio": 1.2335119003017707, + "edge_lengths_px": [ + 42.01190185546875, + 35.05709457397461, + 42.0, + 34.058773040771484 + ] + }, + "confidence": 0.7836703208377462 + }, + { + "observation_id": "4305333e-6efe-40c0-9b98-a22cf832d98e", + "type": "aruco", + "marker_id": 143, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 746.0, + 283.0 + ], + [ + 716.0, + 277.0 + ], + [ + 716.0, + 233.0 + ], + [ + 747.0, + 238.0 + ] + ], + "center_px": [ + 731.25, + 257.75 + ], + "quality": { + "area_px": 1360.0, + "perimeter_px": 151.00586128234863, + "sharpness": { + "laplacian_var": 3965.2702948137326 + }, + "contrast": { + "p05": 18.0, + "p95": 233.0, + "dynamic_range": 215.0, + "mean_gray": 108.6108108108108, + "std_gray": 84.40156199330764 + }, + "geometry": { + "distance_to_center_norm": 0.30031657218933105, + "distance_to_border_px": 233.0 + }, + "edge_ratio": 1.4712341447649295, + "edge_lengths_px": [ + 30.5941162109375, + 44.0, + 31.400636672973633, + 45.0111083984375 + ] + }, + "confidence": 0.6162626594093435 + }, + { + "observation_id": "eecf9b1b-afbc-479d-9342-15ccbeba9892", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 732.0, + 825.0 + ], + [ + 732.0, + 796.0 + ], + [ + 777.0, + 796.0 + ], + [ + 779.0, + 825.0 + ] + ], + "center_px": [ + 755.0, + 810.5 + ], + "quality": { + "area_px": 1334.0, + "perimeter_px": 150.06888389587402, + "sharpness": { + "laplacian_var": 2072.1883786493686 + }, + "contrast": { + "p05": 12.0, + "p95": 174.0, + "dynamic_range": 162.0, + "mean_gray": 69.2550052687039, + "std_gray": 62.53621322831074 + }, + "geometry": { + "distance_to_center_norm": 0.4374200701713562, + "distance_to_border_px": 135.0 + }, + "edge_ratio": 1.6206896551724137, + "edge_lengths_px": [ + 29.0, + 45.0, + 29.068883895874023, + 47.0 + ] + }, + "confidence": 0.5487375886524822 + }, + { + "observation_id": "3924e1df-f47c-45fc-a6c0-33a0d32b24eb", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 435.0, + 814.0 + ], + [ + 443.0, + 787.0 + ], + [ + 486.0, + 785.0 + ], + [ + 480.0, + 815.0 + ] + ], + "center_px": [ + 461.0, + 800.25 + ], + "quality": { + "area_px": 1250.5, + "perimeter_px": 146.8119659423828, + "sharpness": { + "laplacian_var": 1865.3965239986653 + }, + "contrast": { + "p05": 12.0, + "p95": 166.0, + "dynamic_range": 154.0, + "mean_gray": 72.71118721461187, + "std_gray": 63.324974788181756 + }, + "geometry": { + "distance_to_center_norm": 0.4586002230644226, + "distance_to_border_px": 145.0 + }, + "edge_ratio": 1.5983913394153, + "edge_lengths_px": [ + 28.160255432128906, + 43.046485900878906, + 30.5941162109375, + 45.0111083984375 + ] + }, + "confidence": 0.5215660558894334 + }, + { + "observation_id": "d7bd6bf4-a9bd-4121-9014-36e0bf4eb92a", + "type": "aruco", + "marker_id": 146, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 746.0, + 408.0 + ], + [ + 716.0, + 401.0 + ], + [ + 715.0, + 359.0 + ], + [ + 745.0, + 366.0 + ] + ], + "center_px": [ + 730.5, + 383.5 + ], + "quality": { + "area_px": 1253.0, + "perimeter_px": 145.63549041748047, + "sharpness": { + "laplacian_var": 3387.081448489796 + }, + "contrast": { + "p05": 18.0, + "p95": 223.0, + "dynamic_range": 205.0, + "mean_gray": 93.52571428571429, + "std_gray": 78.8750199197879 + }, + "geometry": { + "distance_to_center_norm": 0.16537126898765564, + "distance_to_border_px": 359.0 + }, + "edge_ratio": 1.36376405520504, + "edge_lengths_px": [ + 30.805843353271484, + 42.01190185546875, + 30.805843353271484, + 42.01190185546875 + ] + }, + "confidence": 0.6125204210692752 + }, + { + "observation_id": "b7a7c6de-e891-47d4-b579-4268053fd6d8", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 619.0, + 797.0 + ], + [ + 621.0, + 768.0 + ], + [ + 665.0, + 767.0 + ], + [ + 664.0, + 794.0 + ] + ], + "center_px": [ + 642.25, + 781.5 + ], + "quality": { + "area_px": 1243.0, + "perimeter_px": 145.1986484527588, + "sharpness": { + "laplacian_var": 2035.3823505784608 + }, + "contrast": { + "p05": 16.0, + "p95": 175.0, + "dynamic_range": 159.0, + "mean_gray": 80.2485414235706, + "std_gray": 63.93347312340002 + }, + "geometry": { + "distance_to_center_norm": 0.3768855035305023, + "distance_to_border_px": 163.0 + }, + "edge_ratio": 1.669221703857306, + "edge_lengths_px": [ + 29.068883895874023, + 44.0113639831543, + 27.018512725830078, + 45.09988784790039 + ] + }, + "confidence": 0.4964389480149639 + }, + { + "observation_id": "87eaf6c6-e59a-419d-bf2d-b1b65ebf4f14", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 216.0, + 757.0 + ], + [ + 229.0, + 730.0 + ], + [ + 270.0, + 730.0 + ], + [ + 258.0, + 755.0 + ] + ], + "center_px": [ + 243.25, + 743.0 + ], + "quality": { + "area_px": 1066.5, + "perimeter_px": 140.7450885772705, + "sharpness": { + "laplacian_var": 1810.874410666667 + }, + "contrast": { + "p05": 6.0, + "p95": 159.0, + "dynamic_range": 153.0, + "mean_gray": 60.19466666666667, + "std_gray": 58.51442646808468 + }, + "geometry": { + "distance_to_center_norm": 0.595004677772522, + "distance_to_border_px": 203.0 + }, + "edge_ratio": 1.516275004984885, + "edge_lengths_px": [ + 29.96664810180664, + 41.0, + 27.73084831237793, + 42.04759216308594 + ] + }, + "confidence": 0.468912299986827 + }, + { + "observation_id": "473a5486-5727-4d77-befc-0fd2ed28c10a", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 112.0, + 726.0 + ], + [ + 128.0, + 702.0 + ], + [ + 166.0, + 702.0 + ], + [ + 152.0, + 726.0 + ] + ], + "center_px": [ + 139.5, + 714.0 + ], + "quality": { + "area_px": 936.0, + "perimeter_px": 134.62929725646973, + "sharpness": { + "laplacian_var": 1657.3030859375 + }, + "contrast": { + "p05": 5.0, + "p95": 154.0, + "dynamic_range": 149.0, + "mean_gray": 59.6203125, + "std_gray": 56.5161859550195 + }, + "geometry": { + "distance_to_center_norm": 0.690625011920929, + "distance_to_border_px": 112.0 + }, + "edge_ratio": 1.4396315359562932, + "edge_lengths_px": [ + 28.844409942626953, + 38.0, + 27.784887313842773, + 40.0 + ] + }, + "confidence": 0.4334442420959473 + }, + { + "observation_id": "a87a6af8-964b-4735-9f85-3edac525c4e8", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 325.0, + 720.0 + ], + [ + 336.0, + 697.0 + ], + [ + 375.0, + 695.0 + ], + [ + 366.0, + 720.0 + ] + ], + "center_px": [ + 350.5, + 708.0 + ], + "quality": { + "area_px": 950.0, + "perimeter_px": 132.11700439453125, + "sharpness": { + "laplacian_var": 1588.1474559993958 + }, + "contrast": { + "p05": 16.0, + "p95": 163.0, + "dynamic_range": 147.0, + "mean_gray": 99.31182795698925, + "std_gray": 59.60958101585613 + }, + "geometry": { + "distance_to_center_norm": 0.4606283903121948, + "distance_to_border_px": 240.0 + }, + "edge_ratio": 1.6081522736899718, + "edge_lengths_px": [ + 25.495098114013672, + 39.051246643066406, + 26.570659637451172, + 41.0 + ] + }, + "confidence": 0.3938267188343575 + }, + { + "observation_id": "b227e11b-c799-46a1-a496-a0db6703021d", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 773.0, + 710.0 + ], + [ + 772.0, + 686.0 + ], + [ + 813.0, + 686.0 + ], + [ + 814.0, + 709.0 + ] + ], + "center_px": [ + 793.0, + 697.75 + ], + "quality": { + "area_px": 964.0, + "perimeter_px": 129.05474472045898, + "sharpness": { + "laplacian_var": 2031.8565403211473 + }, + "contrast": { + "p05": 14.0, + "p95": 169.35000000000002, + "dynamic_range": 155.35000000000002, + "mean_gray": 82.85932721712538, + "std_gray": 63.7454208717471 + }, + "geometry": { + "distance_to_center_norm": 0.33265987038612366, + "distance_to_border_px": 250.0 + }, + "edge_ratio": 1.7814557992300921, + "edge_lengths_px": [ + 24.020824432373047, + 41.0, + 23.021728515625, + 41.01219177246094 + ] + }, + "confidence": 0.36075364145684324 + }, + { + "observation_id": "18af0cf7-c4ab-4cfa-961a-36b51589a547", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 832.0, + 697.0 + ], + [ + 830.0, + 674.0 + ], + [ + 869.0, + 674.0 + ], + [ + 874.0, + 697.0 + ] + ], + "center_px": [ + 851.25, + 685.5 + ], + "quality": { + "area_px": 931.5, + "perimeter_px": 127.62399673461914, + "sharpness": { + "laplacian_var": 1583.5386833395355 + }, + "contrast": { + "p05": 12.0, + "p95": 151.0, + "dynamic_range": 139.0, + "mean_gray": 39.072213500784926, + "std_gray": 42.16750402721678 + }, + "geometry": { + "distance_to_center_norm": 0.36839351058006287, + "distance_to_border_px": 263.0 + }, + "edge_ratio": 1.8192220042616867, + "edge_lengths_px": [ + 23.0867919921875, + 39.0, + 23.53720474243164, + 42.0 + ] + }, + "confidence": 0.34135471017020086 + }, + { + "observation_id": "8440dda3-dec8-42a3-b6d6-76fcb5670b0e", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 435.0, + 703.0 + ], + [ + 442.0, + 680.0 + ], + [ + 480.0, + 678.0 + ], + [ + 474.0, + 702.0 + ] + ], + "center_px": [ + 457.75, + 690.75 + ], + "quality": { + "area_px": 895.0, + "perimeter_px": 125.84567832946777, + "sharpness": { + "laplacian_var": 2587.7404393904735 + }, + "contrast": { + "p05": 18.0, + "p95": 162.0, + "dynamic_range": 144.0, + "mean_gray": 70.3003300330033, + "std_gray": 55.836266706855184 + }, + "geometry": { + "distance_to_center_norm": 0.3482784330844879, + "distance_to_border_px": 257.0 + }, + "edge_ratio": 1.6227193298266096, + "edge_lengths_px": [ + 24.041629791259766, + 38.05259704589844, + 24.73863410949707, + 39.0128173828125 + ] + }, + "confidence": 0.3676955439548635 + }, + { + "observation_id": "fd0bea43-00ac-4125-bd70-01cbf1fb0b27", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 675.0, + 683.0 + ], + [ + 676.0, + 661.0 + ], + [ + 716.0, + 661.0 + ], + [ + 716.0, + 683.0 + ] + ], + "center_px": [ + 695.75, + 672.0 + ], + "quality": { + "area_px": 891.0, + "perimeter_px": 125.02271461486816, + "sharpness": { + "laplacian_var": 2397.64758698092 + }, + "contrast": { + "p05": 13.0, + "p95": 154.0, + "dynamic_range": 141.0, + "mean_gray": 82.506734006734, + "std_gray": 54.950643189833414 + }, + "geometry": { + "distance_to_center_norm": 0.24991267919540405, + "distance_to_border_px": 277.0 + }, + "edge_ratio": 1.8636363636363635, + "edge_lengths_px": [ + 22.022714614868164, + 40.0, + 22.0, + 41.0 + ] + }, + "confidence": 0.3187317073170732 + }, + { + "observation_id": "8a66dc0e-2047-4a40-b462-9a6610044506", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1176.0, + 574.0 + ], + [ + 1215.0, + 573.0 + ], + [ + 1228.0, + 592.0 + ], + [ + 1188.0, + 593.0 + ] + ], + "center_px": [ + 1201.75, + 583.0 + ], + "quality": { + "area_px": 763.0, + "perimeter_px": 124.51924705505371, + "sharpness": { + "laplacian_var": 1835.933977614684 + }, + "contrast": { + "p05": 5.050000000000001, + "p95": 146.94999999999993, + "dynamic_range": 141.89999999999992, + "mean_gray": 58.87084870848709, + "std_gray": 52.55173096059701 + }, + "geometry": { + "distance_to_center_norm": 0.7138934135437012, + "distance_to_border_px": 52.0 + }, + "edge_ratio": 1.7805328118784167, + "edge_lengths_px": [ + 39.0128173828125, + 23.021728515625, + 40.01249694824219, + 22.472204208374023 + ] + }, + "confidence": 0.28568227626765064 + }, + { + "observation_id": "08f7af4d-2bd7-49b2-b17e-d06dfd8613fe", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 600.0, + 499.0 + ], + [ + 641.0, + 498.0 + ], + [ + 641.0, + 517.0 + ], + [ + 599.0, + 519.0 + ] + ], + "center_px": [ + 620.25, + 508.25 + ], + "quality": { + "area_px": 808.5, + "perimeter_px": 122.08476829528809, + "sharpness": { + "laplacian_var": 1699.3566834200435 + }, + "contrast": { + "p05": 24.6, + "p95": 165.0, + "dynamic_range": 140.4, + "mean_gray": 72.19168173598554, + "std_gray": 52.50098908456027 + }, + "geometry": { + "distance_to_center_norm": 0.04308648407459259, + "distance_to_border_px": 441.0 + }, + "edge_ratio": 2.213031166478207, + "edge_lengths_px": [ + 41.01219177246094, + 19.0, + 42.04759216308594, + 20.02498435974121 + ] + }, + "confidence": 0.24355734711940752 + }, + { + "observation_id": "f8c35435-ca4d-49a1-8350-6a0bdccb4d2b", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 981.0, + 580.0 + ], + [ + 1020.0, + 580.0 + ], + [ + 1026.0, + 599.0 + ], + [ + 988.0, + 600.0 + ] + ], + "center_px": [ + 1003.75, + 589.75 + ], + "quality": { + "area_px": 754.0, + "perimeter_px": 118.12763595581055, + "sharpness": { + "laplacian_var": 2491.0754207283026 + }, + "contrast": { + "p05": 6.0, + "p95": 152.0, + "dynamic_range": 146.0, + "mean_gray": 63.46741154562383, + "std_gray": 55.77401328669449 + }, + "geometry": { + "distance_to_center_norm": 0.47493278980255127, + "distance_to_border_px": 254.0 + }, + "edge_ratio": 1.9573539654563061, + "edge_lengths_px": [ + 39.0, + 19.92485809326172, + 38.01315689086914, + 21.189620971679688 + ] + }, + "confidence": 0.25680928209092885 + }, + { + "observation_id": "2865db04-2ed6-4e37-8136-e5a27f2aa6b2", + "type": "aruco", + "marker_id": 130, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 794.0, + 619.0 + ], + [ + 753.0, + 620.0 + ], + [ + 753.0, + 607.0 + ], + [ + 795.0, + 605.0 + ] + ], + "center_px": [ + 773.75, + 612.75 + ], + "quality": { + "area_px": 559.5, + "perimeter_px": 110.09545230865479, + "sharpness": { + "laplacian_var": 2828.1190082644625 + }, + "contrast": { + "p05": 39.0, + "p95": 194.79999999999995, + "dynamic_range": 155.79999999999995, + "mean_gray": 107.04415584415584, + "std_gray": 61.03850709972128 + }, + "geometry": { + "distance_to_center_norm": 0.23555660247802734, + "distance_to_border_px": 340.0 + }, + "edge_ratio": 3.234430166391226, + "edge_lengths_px": [ + 41.01219177246094, + 13.0, + 42.04759216308594, + 14.03566837310791 + ] + }, + "confidence": 0.11532170453881527 + }, + { + "observation_id": "49866158-a36a-4df6-8d3f-ea2b56fe2258", + "type": "aruco", + "marker_id": 198, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 608.0, + 431.0 + ], + [ + 642.0, + 430.0 + ], + [ + 642.0, + 446.0 + ], + [ + 604.0, + 446.0 + ] + ], + "center_px": [ + 624.0, + 438.25 + ], + "quality": { + "area_px": 557.0, + "perimeter_px": 103.5388765335083, + "sharpness": { + "laplacian_var": 3096.9997299011943 + }, + "contrast": { + "p05": 22.0, + "p95": 166.0, + "dynamic_range": 144.0, + "mean_gray": 86.88721804511279, + "std_gray": 53.68785501834892 + }, + "geometry": { + "distance_to_center_norm": 0.055888596922159195, + "distance_to_border_px": 430.0 + }, + "edge_ratio": 2.447795181271335, + "edge_lengths_px": [ + 34.01470184326172, + 16.0, + 38.0, + 15.524174690246582 + ] + }, + "confidence": 0.15170114565732185 + }, + { + "observation_id": "fe082b7f-0047-428f-bce7-46e74b35e1ae", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 997.0, + 512.0 + ], + [ + 1031.0, + 510.0 + ], + [ + 1039.0, + 525.0 + ], + [ + 1003.0, + 527.0 + ] + ], + "center_px": [ + 1017.5, + 518.5 + ], + "quality": { + "area_px": 539.0, + "perimeter_px": 103.26977920532227, + "sharpness": { + "laplacian_var": 3737.284871794872 + }, + "contrast": { + "p05": 17.0, + "p95": 160.0, + "dynamic_range": 143.0, + "mean_gray": 88.78205128205128, + "std_gray": 54.76168589393581 + }, + "geometry": { + "distance_to_center_norm": 0.47432270646095276, + "distance_to_border_px": 241.0 + }, + "edge_ratio": 2.231780095044564, + "edge_lengths_px": [ + 34.058773040771484, + 17.0, + 36.055511474609375, + 16.155494689941406 + ] + }, + "confidence": 0.16100749985681642 + }, + { + "observation_id": "173580a4-80c9-4511-b0df-a0be3504e5e6", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 425.0, + 525.0 + ], + [ + 458.0, + 525.0 + ], + [ + 453.0, + 540.0 + ], + [ + 420.0, + 541.0 + ] + ], + "center_px": [ + 439.0, + 532.75 + ], + "quality": { + "area_px": 509.0, + "perimeter_px": 98.58959007263184, + "sharpness": { + "laplacian_var": 1909.8500169760073 + }, + "contrast": { + "p05": 27.0, + "p95": 142.0, + "dynamic_range": 115.0, + "mean_gray": 73.70478723404256, + "std_gray": 38.864748815432286 + }, + "geometry": { + "distance_to_center_norm": 0.2597581744194031, + "distance_to_border_px": 419.0 + }, + "edge_ratio": 2.088061347299867, + "edge_lengths_px": [ + 33.0, + 15.81138801574707, + 33.0151481628418, + 16.76305389404297 + ] + }, + "confidence": 0.16251118951659882 + }, + { + "observation_id": "6df4a0ca-d571-4f1c-a183-d7a5532e82f2", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1015.0, + 441.0 + ], + [ + 1010.0, + 429.0 + ], + [ + 1039.0, + 428.0 + ], + [ + 1045.0, + 439.0 + ] + ], + "center_px": [ + 1027.25, + 434.25 + ], + "quality": { + "area_px": 347.5, + "perimeter_px": 84.61379432678223, + "sharpness": { + "laplacian_var": 3407.013056 + }, + "contrast": { + "p05": 10.0, + "p95": 131.64999999999995, + "dynamic_range": 121.64999999999995, + "mean_gray": 60.588, + "std_gray": 45.68984850051486 + }, + "geometry": { + "distance_to_center_norm": 0.4874289035797119, + "distance_to_border_px": 235.0 + }, + "edge_ratio": 2.3995752978623326, + "edge_lengths_px": [ + 13.0, + 29.017236709594727, + 12.529964447021484, + 30.066593170166016 + ] + }, + "confidence": 0.09654486228169104 + }, + { + "observation_id": "9efdfa88-9de7-4600-b825-0b26f5bd4696", + "type": "aruco", + "marker_id": 204, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 526.0, + 296.0 + ], + [ + 556.0, + 296.0 + ], + [ + 554.0, + 306.0 + ], + [ + 521.0, + 306.0 + ] + ], + "center_px": [ + 539.25, + 301.0 + ], + "quality": { + "area_px": 315.0, + "perimeter_px": 84.37837886810303, + "sharpness": { + "laplacian_var": 2556.31638573716 + }, + "contrast": { + "p05": 37.0, + "p95": 144.0, + "dynamic_range": 107.0, + "mean_gray": 77.60580912863071, + "std_gray": 36.76952733620441 + }, + "geometry": { + "distance_to_center_norm": 0.25675731897354126, + "distance_to_border_px": 296.0 + }, + "edge_ratio": 3.2359162209953616, + "edge_lengths_px": [ + 30.0, + 10.198039054870605, + 33.0, + 11.180339813232422 + ] + }, + "confidence": 0.0648966121673584 + }, + { + "observation_id": "3eb2cbe9-c310-4103-99c5-8029b48628eb", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1004.0, + 420.0 + ], + [ + 1000.0, + 408.0 + ], + [ + 1028.0, + 408.0 + ], + [ + 1034.0, + 418.0 + ] + ], + "center_px": [ + 1016.5, + 413.5 + ], + "quality": { + "area_px": 324.0, + "perimeter_px": 82.37760734558105, + "sharpness": { + "laplacian_var": 3007.341991341991 + }, + "contrast": { + "p05": 7.5, + "p95": 135.5, + "dynamic_range": 128.0, + "mean_gray": 57.02597402597402, + "std_gray": 44.54784111335584 + }, + "geometry": { + "distance_to_center_norm": 0.477909654378891, + "distance_to_border_px": 246.0 + }, + "edge_ratio": 2.5781891846450455, + "edge_lengths_px": [ + 12.649110794067383, + 28.0, + 11.661903381347656, + 30.066593170166016 + ] + }, + "confidence": 0.08377973241313476 + }, + { + "observation_id": "b645a96d-1bf3-42a0-8cfc-583ee86a6a8e", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 896.0, + 422.0 + ], + [ + 894.0, + 411.0 + ], + [ + 921.0, + 411.0 + ], + [ + 925.0, + 422.0 + ] + ], + "center_px": [ + 909.0, + 416.5 + ], + "quality": { + "area_px": 308.0, + "perimeter_px": 78.88503932952881, + "sharpness": { + "laplacian_var": 2848.797707100592 + }, + "contrast": { + "p05": 25.35, + "p95": 146.0, + "dynamic_range": 120.65, + "mean_gray": 97.03846153846153, + "std_gray": 43.10037994588087 + }, + "geometry": { + "distance_to_center_norm": 0.34549158811569214, + "distance_to_border_px": 355.0 + }, + "edge_ratio": 2.5938388711295906, + "edge_lengths_px": [ + 11.180339813232422, + 27.0, + 11.704699516296387, + 29.0 + ] + }, + "confidence": 0.07916194626380657 + }, + { + "observation_id": "7b82706b-f8b0-4a7e-82e5-5876bf388162", + "type": "aruco", + "marker_id": 190, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1208.0, + 363.0 + ], + [ + 1202.0, + 355.0 + ], + [ + 1227.0, + 354.0 + ], + [ + 1237.0, + 363.0 + ] + ], + "center_px": [ + 1218.5, + 358.75 + ], + "quality": { + "area_px": 233.5, + "perimeter_px": 77.47361660003662, + "sharpness": { + "laplacian_var": 2096.8349452651714 + }, + "contrast": { + "p05": 13.65, + "p95": 129.0, + "dynamic_range": 115.35, + "mean_gray": 79.11340206185567, + "std_gray": 37.79253629708095 + }, + "geometry": { + "distance_to_center_norm": 0.7388375997543335, + "distance_to_border_px": 43.0 + }, + "edge_ratio": 2.9, + "edge_lengths_px": [ + 10.0, + 25.01999282836914, + 13.45362377166748, + 29.0 + ] + }, + "confidence": 0.0461632183908046 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 670.0, + 390.0 + ], + [ + 690.0, + 419.0 + ], + [ + 690.0, + 437.0 + ], + [ + 679.0, + 458.0 + ] + ], + "center_px": [ + 682.25, + 426.0 + ], + "area_px": 648.5 + }, + { + "image_points_px": [ + [ + 1260.0, + 524.0 + ], + [ + 1216.0, + 526.0 + ], + [ + 1202.0, + 506.0 + ], + [ + 1246.0, + 506.0 + ] + ], + "center_px": [ + 1231.0, + 515.5 + ], + "area_px": 850.0 + }, + { + "image_points_px": [ + [ + 466.0, + 555.0 + ], + [ + 452.0, + 559.0 + ], + [ + 406.0, + 556.0 + ], + [ + 452.0, + 551.0 + ] + ], + "center_px": [ + 444.0, + 555.25 + ], + "area_px": 240.0 + }, + { + "image_points_px": [ + [ + 775.0, + 473.0 + ], + [ + 777.0, + 520.0 + ], + [ + 770.0, + 522.0 + ], + [ + 770.0, + 476.0 + ] + ], + "center_px": [ + 773.0, + 497.75 + ], + "area_px": 281.5 + }, + { + "image_points_px": [ + [ + 787.0, + 474.0 + ], + [ + 792.0, + 477.0 + ], + [ + 790.0, + 522.0 + ], + [ + 784.0, + 520.0 + ] + ], + "center_px": [ + 788.25, + 498.25 + ], + "area_px": 256.5 + }, + { + "image_points_px": [ + [ + 789.0, + 473.0 + ], + [ + 792.0, + 503.0 + ], + [ + 787.0, + 523.0 + ], + [ + 784.0, + 490.0 + ] + ], + "center_px": [ + 788.0, + 497.25 + ], + "area_px": 213.0 + }, + { + "image_points_px": [ + [ + 1154.0, + 428.0 + ], + [ + 1185.0, + 427.0 + ], + [ + 1193.0, + 438.0 + ], + [ + 1163.0, + 440.0 + ] + ], + "center_px": [ + 1173.75, + 433.25 + ], + "area_px": 363.5 + }, + { + "image_points_px": [ + [ + 803.0, + 244.0 + ], + [ + 813.0, + 242.0 + ], + [ + 812.0, + 276.0 + ], + [ + 803.0, + 277.0 + ] + ], + "center_px": [ + 807.75, + 259.75 + ], + "area_px": 317.5 + }, + { + "image_points_px": [ + [ + 915.0, + 433.0 + ], + [ + 945.0, + 432.0 + ], + [ + 949.0, + 442.0 + ], + [ + 918.0, + 444.0 + ] + ], + "center_px": [ + 931.75, + 437.75 + ], + "area_px": 325.5 + }, + { + "image_points_px": [ + [ + 960.0, + 423.0 + ], + [ + 988.0, + 422.0 + ], + [ + 994.0, + 433.0 + ], + [ + 963.0, + 434.0 + ] + ], + "center_px": [ + 976.25, + 428.0 + ], + "area_px": 329.0 + }, + { + "image_points_px": [ + [ + 316.0, + 437.0 + ], + [ + 309.0, + 449.0 + ], + [ + 281.0, + 448.0 + ], + [ + 289.0, + 438.0 + ] + ], + "center_px": [ + 298.75, + 443.0 + ], + "area_px": 302.5 + }, + { + "image_points_px": [ + [ + 1183.0, + 360.0 + ], + [ + 1155.0, + 361.0 + ], + [ + 1148.0, + 352.0 + ], + [ + 1174.0, + 350.0 + ] + ], + "center_px": [ + 1165.0, + 355.75 + ], + "area_px": 268.5 + }, + { + "image_points_px": [ + [ + 333.0, + 449.0 + ], + [ + 342.0, + 438.0 + ], + [ + 367.0, + 438.0 + ], + [ + 361.0, + 448.0 + ] + ], + "center_px": [ + 350.75, + 443.25 + ], + "area_px": 274.5 + }, + { + "image_points_px": [ + [ + 757.0, + 480.0 + ], + [ + 763.0, + 483.0 + ], + [ + 761.0, + 515.0 + ], + [ + 756.0, + 513.0 + ] + ], + "center_px": [ + 759.25, + 497.75 + ], + "area_px": 182.5 + }, + { + "image_points_px": [ + [ + 929.0, + 385.0 + ], + [ + 956.0, + 385.0 + ], + [ + 961.0, + 394.0 + ], + [ + 932.0, + 395.0 + ] + ], + "center_px": [ + 944.5, + 389.75 + ], + "area_px": 268.0 + }, + { + "image_points_px": [ + [ + 1059.0, + 359.0 + ], + [ + 1085.0, + 359.0 + ], + [ + 1091.0, + 369.0 + ], + [ + 1063.0, + 369.0 + ] + ], + "center_px": [ + 1074.5, + 364.0 + ], + "area_px": 270.0 + }, + { + "image_points_px": [ + [ + 1015.0, + 368.0 + ], + [ + 1041.0, + 367.0 + ], + [ + 1047.0, + 376.0 + ], + [ + 1019.0, + 378.0 + ] + ], + "center_px": [ + 1030.5, + 372.25 + ], + "area_px": 264.0 + }, + { + "image_points_px": [ + [ + 981.0, + 364.0 + ], + [ + 1008.0, + 363.0 + ], + [ + 1012.0, + 372.0 + ], + [ + 985.0, + 373.0 + ] + ], + "center_px": [ + 996.5, + 368.0 + ], + "area_px": 247.0 + }, + { + "image_points_px": [ + [ + 326.0, + 384.0 + ], + [ + 335.0, + 374.0 + ], + [ + 357.0, + 375.0 + ], + [ + 351.0, + 384.0 + ] + ], + "center_px": [ + 342.25, + 379.25 + ], + "area_px": 227.0 + }, + { + "image_points_px": [ + [ + 399.0, + 382.0 + ], + [ + 404.0, + 372.0 + ], + [ + 428.0, + 372.0 + ], + [ + 423.0, + 381.0 + ] + ], + "center_px": [ + 413.5, + 376.75 + ], + "area_px": 225.5 + }, + { + "image_points_px": [ + [ + 121.0, + 722.0 + ], + [ + 124.0, + 717.0 + ], + [ + 143.0, + 718.0 + ], + [ + 141.0, + 723.0 + ] + ], + "center_px": [ + 132.25, + 720.0 + ], + "area_px": 100.0 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam0_camera_pose.json b/data/homing/20260625_175916/cam0_camera_pose.json new file mode 100644 index 0000000..f9e9ee1 --- /dev/null +++ b/data/homing/20260625_175916/cam0_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam0_debug.jpg b/data/homing/20260625_175916/cam0_debug.jpg new file mode 100644 index 0000000..6ab44c4 Binary files /dev/null and b/data/homing/20260625_175916/cam0_debug.jpg differ diff --git a/data/homing/20260625_175916/cam1.jpg b/data/homing/20260625_175916/cam1.jpg new file mode 100644 index 0000000..2a36a5a Binary files /dev/null and b/data/homing/20260625_175916/cam1.jpg differ diff --git a/data/homing/20260625_175916/cam1_aruco_detection.json b/data/homing/20260625_175916/cam1_aruco_detection.json new file mode 100644 index 0000000..17e0c34 --- /dev/null +++ b/data/homing/20260625_175916/cam1_aruco_detection.json @@ -0,0 +1,3558 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:59:25Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam1", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam1_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_175916/cam1.jpg", + "image_sha256": "0477223544468ab2c0e36b2803eb03ec830aa4efe0202965c60be8e0b6f93198", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 58, + "num_rejected_candidates": 15 + }, + "detections": [ + { + "observation_id": "470367e9-647e-4f5b-8ac3-817d47196f7d", + "type": "aruco", + "marker_id": 179, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 752.0, + 654.0 + ], + [ + 716.0, + 697.0 + ], + [ + 685.0, + 664.0 + ], + [ + 723.0, + 621.0 + ] + ], + "center_px": [ + 719.0, + 659.0 + ], + "quality": { + "area_px": 2511.0, + "perimeter_px": 202.67365646362305, + "sharpness": { + "laplacian_var": 2916.5951025048935 + }, + "contrast": { + "p05": 6.0, + "p95": 197.0, + "dynamic_range": 191.0, + "mean_gray": 82.63523131672598, + "std_gray": 77.46822203601286 + }, + "geometry": { + "distance_to_center_norm": 0.24457234144210815, + "distance_to_border_px": 263.0 + }, + "edge_ratio": 1.3062226038599225, + "edge_lengths_px": [ + 56.080299377441406, + 45.27692413330078, + 57.384666442871094, + 43.931766510009766 + ] + }, + "confidence": 0.7655662955494519 + }, + { + "observation_id": "88a411b7-5f7b-4355-94d5-410c76c12054", + "type": "aruco", + "marker_id": 200, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 991.0, + 644.0 + ], + [ + 948.0, + 645.0 + ], + [ + 949.0, + 610.0 + ], + [ + 992.0, + 609.0 + ] + ], + "center_px": [ + 970.0, + 627.0 + ], + "quality": { + "area_px": 1504.0, + "perimeter_px": 156.05181884765625, + "sharpness": { + "laplacian_var": 2777.0820024751874 + }, + "contrast": { + "p05": 3.0, + "p95": 162.29999999999995, + "dynamic_range": 159.29999999999995, + "mean_gray": 54.17142857142857, + "std_gray": 60.302588164509935 + }, + "geometry": { + "distance_to_center_norm": 0.451575368642807, + "distance_to_border_px": 288.0 + }, + "edge_ratio": 1.2284023678953553, + "edge_lengths_px": [ + 43.011627197265625, + 35.0142822265625, + 43.011627197265625, + 35.0142822265625 + ] + }, + "confidence": 0.8140655099137579 + }, + { + "observation_id": "45713fc6-8670-428c-8463-03fa00c8bc4b", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 621.0, + 570.0 + ], + [ + 674.0, + 574.0 + ], + [ + 667.0, + 608.0 + ], + [ + 613.0, + 602.0 + ] + ], + "center_px": [ + 643.75, + 588.5 + ], + "quality": { + "area_px": 1803.0, + "perimeter_px": 175.18099212646484, + "sharpness": { + "laplacian_var": 4486.918468860936 + }, + "contrast": { + "p05": 18.0, + "p95": 250.0, + "dynamic_range": 232.0, + "mean_gray": 98.37278582930757, + "std_gray": 85.15446985355189 + }, + "geometry": { + "distance_to_center_norm": 0.13570597767829895, + "distance_to_border_px": 352.0 + }, + "edge_ratio": 1.6471901270981946, + "edge_lengths_px": [ + 53.15073013305664, + 34.71310806274414, + 54.33230972290039, + 32.98484420776367 + ] + }, + "confidence": 0.6070944595580293 + }, + { + "observation_id": "12820d57-e828-4e6e-918a-dcc5afa2e60d", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 757.0, + 16.0 + ], + [ + 756.0, + 61.0 + ], + [ + 714.0, + 60.0 + ], + [ + 714.0, + 16.0 + ] + ], + "center_px": [ + 735.25, + 38.25 + ], + "quality": { + "area_px": 1891.5, + "perimeter_px": 174.02301025390625, + "sharpness": { + "laplacian_var": 1852.544375787352 + }, + "contrast": { + "p05": 3.0, + "p95": 164.0, + "dynamic_range": 161.0, + "mean_gray": 38.603968253968254, + "std_gray": 54.93794031305016 + }, + "geometry": { + "distance_to_center_norm": 0.5648777484893799, + "distance_to_border_px": 16.0 + }, + "edge_ratio": 1.0713894494299914, + "edge_lengths_px": [ + 45.0111083984375, + 42.01190185546875, + 44.0, + 43.0 + ] + }, + "confidence": 0.29867757253933086 + }, + { + "observation_id": "5a3d0bd9-bbea-45ae-953a-aff39016f56f", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1030.0, + 118.0 + ], + [ + 1024.0, + 160.0 + ], + [ + 982.0, + 160.0 + ], + [ + 985.0, + 118.0 + ] + ], + "center_px": [ + 1005.25, + 139.0 + ], + "quality": { + "area_px": 1827.0, + "perimeter_px": 171.5334129333496, + "sharpness": { + "laplacian_var": 2174.863663548208 + }, + "contrast": { + "p05": 3.0, + "p95": 164.0, + "dynamic_range": 161.0, + "mean_gray": 62.68872549019608, + "std_gray": 67.06053019091584 + }, + "geometry": { + "distance_to_center_norm": 0.6246106028556824, + "distance_to_border_px": 118.0 + }, + "edge_ratio": 1.0714285714285714, + "edge_lengths_px": [ + 42.42640686035156, + 42.0, + 42.10700607299805, + 45.0 + ] + }, + "confidence": 0.9333333333333333 + }, + { + "observation_id": "48a2d8ac-836b-4ec0-b081-88abc82e5559", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1260.0, + 215.0 + ], + [ + 1253.0, + 256.0 + ], + [ + 1210.0, + 255.0 + ], + [ + 1216.0, + 215.0 + ] + ], + "center_px": [ + 1234.75, + 235.25 + ], + "quality": { + "area_px": 1765.0, + "perimeter_px": 169.05239486694336, + "sharpness": { + "laplacian_var": 1614.2657129659956 + }, + "contrast": { + "p05": 2.0, + "p95": 149.0, + "dynamic_range": 147.0, + "mean_gray": 51.375105130361646, + "std_gray": 58.303249343670025 + }, + "geometry": { + "distance_to_center_norm": 0.8039259910583496, + "distance_to_border_px": 20.0 + }, + "edge_ratio": 1.0878299481027616, + "edge_lengths_px": [ + 41.59326934814453, + 43.011627197265625, + 40.4474983215332, + 44.0 + ] + }, + "confidence": 0.36770453019575644 + }, + { + "observation_id": "95fcfef0-64d5-47cc-9c89-868c99ebb45b", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 477.0, + 47.0 + ], + [ + 480.0, + 90.0 + ], + [ + 439.0, + 89.0 + ], + [ + 436.0, + 46.0 + ] + ], + "center_px": [ + 458.0, + 68.0 + ], + "quality": { + "area_px": 1760.0, + "perimeter_px": 168.23342895507812, + "sharpness": { + "laplacian_var": 2613.359963269054 + }, + "contrast": { + "p05": 2.0, + "p95": 165.0, + "dynamic_range": 163.0, + "mean_gray": 95.01767676767676, + "std_gray": 68.01203491235276 + }, + "geometry": { + "distance_to_center_norm": 0.5630108714103699, + "distance_to_border_px": 46.0 + }, + "edge_ratio": 1.0510172912539182, + "edge_lengths_px": [ + 43.104522705078125, + 41.01219177246094, + 43.104522705078125, + 41.01219177246094 + ] + }, + "confidence": 0.875342401743355 + }, + { + "observation_id": "28e61c7a-2f7c-4a5b-9386-f5dbba42459b", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 870.0, + 440.0 + ], + [ + 827.0, + 439.0 + ], + [ + 828.0, + 400.0 + ], + [ + 872.0, + 400.0 + ] + ], + "center_px": [ + 849.25, + 419.75 + ], + "quality": { + "area_px": 1719.0, + "perimeter_px": 166.07441329956055, + "sharpness": { + "laplacian_var": 1268.0287994511345 + }, + "contrast": { + "p05": 13.600000000000001, + "p95": 162.0, + "dynamic_range": 148.4, + "mean_gray": 58.690537084398976, + "std_gray": 58.05429055755662 + }, + "geometry": { + "distance_to_center_norm": 0.27218911051750183, + "distance_to_border_px": 400.0 + }, + "edge_ratio": 1.1278344644594844, + "edge_lengths_px": [ + 43.011627197265625, + 39.0128173828125, + 44.0, + 40.04996871948242 + ] + }, + "confidence": 0.8866549405184659 + }, + { + "observation_id": "6ce56c88-4d13-41aa-9ac9-ebb1304047b4", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 856.0, + 139.0 + ], + [ + 853.0, + 181.0 + ], + [ + 813.0, + 180.0 + ], + [ + 814.0, + 139.0 + ] + ], + "center_px": [ + 834.0, + 159.75 + ], + "quality": { + "area_px": 1702.5, + "perimeter_px": 165.13169479370117, + "sharpness": { + "laplacian_var": 2289.4948621433655 + }, + "contrast": { + "p05": 6.0, + "p95": 169.0, + "dynamic_range": 163.0, + "mean_gray": 71.09884238646482, + "std_gray": 68.32887594614238 + }, + "geometry": { + "distance_to_center_norm": 0.468034565448761, + "distance_to_border_px": 139.0 + }, + "edge_ratio": 1.0523463738707732, + "edge_lengths_px": [ + 42.10700607299805, + 40.01249694824219, + 41.01219177246094, + 42.0 + ] + }, + "confidence": 0.9502574673410703 + }, + { + "observation_id": "8e57c961-dd66-48eb-b180-4c1fc0a78c58", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 753.0, + 97.0 + ], + [ + 752.0, + 138.0 + ], + [ + 711.0, + 137.0 + ], + [ + 711.0, + 96.0 + ] + ], + "center_px": [ + 731.75, + 117.0 + ], + "quality": { + "area_px": 1702.0, + "perimeter_px": 165.03628540039062, + "sharpness": { + "laplacian_var": 2219.5115487789117 + }, + "contrast": { + "p05": 4.0, + "p95": 168.0, + "dynamic_range": 164.0, + "mean_gray": 62.747996438112196, + "std_gray": 65.84518448354666 + }, + "geometry": { + "distance_to_center_norm": 0.4680195152759552, + "distance_to_border_px": 96.0 + }, + "edge_ratio": 1.0246805330602133, + "edge_lengths_px": [ + 41.01219177246094, + 41.01219177246094, + 41.0, + 42.01190185546875 + ] + }, + "confidence": 0.9759139241315488 + }, + { + "observation_id": "cc91b4c8-65e3-4ec8-9d40-3b051ab14608", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1153.0, + 265.0 + ], + [ + 1147.0, + 304.0 + ], + [ + 1105.0, + 304.0 + ], + [ + 1110.0, + 265.0 + ] + ], + "center_px": [ + 1128.75, + 284.5 + ], + "quality": { + "area_px": 1657.5, + "perimeter_px": 163.77804565429688, + "sharpness": { + "laplacian_var": 2106.7510839628635 + }, + "contrast": { + "p05": 2.0, + "p95": 160.0, + "dynamic_range": 158.0, + "mean_gray": 82.3015332197615, + "std_gray": 67.55974866662811 + }, + "geometry": { + "distance_to_center_norm": 0.6579998135566711, + "distance_to_border_px": 127.0 + }, + "edge_ratio": 1.0936131248414958, + "edge_lengths_px": [ + 39.458839416503906, + 42.0, + 39.31920623779297, + 43.0 + ] + }, + "confidence": 0.9144001450649527 + }, + { + "observation_id": "e3b39ae1-ec84-474d-8d14-5e43bf66e5b0", + "type": "aruco", + "marker_id": 59, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 279.0, + 103.0 + ], + [ + 285.0, + 145.0 + ], + [ + 245.0, + 143.0 + ], + [ + 239.0, + 103.0 + ] + ], + "center_px": [ + 262.0, + 123.5 + ], + "quality": { + "area_px": 1634.0, + "perimeter_px": 162.9238739013672, + "sharpness": { + "laplacian_var": 2080.1154405400584 + }, + "contrast": { + "p05": 2.0, + "p95": 153.0, + "dynamic_range": 151.0, + "mean_gray": 75.95829555757027, + "std_gray": 64.29697982974972 + }, + "geometry": { + "distance_to_center_norm": 0.6494905352592468, + "distance_to_border_px": 103.0 + }, + "edge_ratio": 1.060660171508789, + "edge_lengths_px": [ + 42.42640686035156, + 40.04996871948242, + 40.4474983215332, + 40.0 + ] + }, + "confidence": 0.9428090418229809 + }, + { + "observation_id": "52a5ddde-5138-4f1b-ade4-71e707f7c2ea", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 450.0, + 128.0 + ], + [ + 454.0, + 168.0 + ], + [ + 415.0, + 168.0 + ], + [ + 410.0, + 127.0 + ] + ], + "center_px": [ + 432.25, + 147.75 + ], + "quality": { + "area_px": 1597.5, + "perimeter_px": 160.51575088500977, + "sharpness": { + "laplacian_var": 1449.6545886425095 + }, + "contrast": { + "p05": 3.0, + "p95": 153.0, + "dynamic_range": 150.0, + "mean_gray": 29.205581395348837, + "std_gray": 45.686714434557125 + }, + "geometry": { + "distance_to_center_norm": 0.48981842398643494, + "distance_to_border_px": 127.0 + }, + "edge_ratio": 1.0590705871582031, + "edge_lengths_px": [ + 40.199501037597656, + 39.0, + 41.30375289916992, + 40.01249694824219 + ] + }, + "confidence": 0.9442241264421224 + }, + { + "observation_id": "e2045679-2476-4d47-b4a3-8f70548233dd", + "type": "aruco", + "marker_id": 48, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 165.0, + 30.0 + ], + [ + 171.0, + 71.0 + ], + [ + 132.0, + 71.0 + ], + [ + 126.0, + 31.0 + ] + ], + "center_px": [ + 148.5, + 50.75 + ], + "quality": { + "area_px": 1582.5, + "perimeter_px": 159.89701461791992, + "sharpness": { + "laplacian_var": 1028.6291059557896 + }, + "contrast": { + "p05": 3.0, + "p95": 141.0, + "dynamic_range": 138.0, + "mean_gray": 46.55818353831599, + "std_gray": 52.97975079265153 + }, + "geometry": { + "distance_to_center_norm": 0.8156934976577759, + "distance_to_border_px": 30.0 + }, + "edge_ratio": 1.0624794593224158, + "edge_lengths_px": [ + 41.43669891357422, + 39.0, + 40.4474983215332, + 39.0128173828125 + ] + }, + "confidence": 0.5647167996853729 + }, + { + "observation_id": "d0de083d-b840-4267-84e0-d6f8ded2e80b", + "type": "aruco", + "marker_id": 198, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 868.0, + 581.0 + ], + [ + 827.0, + 580.0 + ], + [ + 824.0, + 543.0 + ], + [ + 869.0, + 545.0 + ] + ], + "center_px": [ + 847.0, + 562.25 + ], + "quality": { + "area_px": 1568.0, + "perimeter_px": 159.19192123413086, + "sharpness": { + "laplacian_var": 2551.058915120145 + }, + "contrast": { + "p05": 4.0, + "p95": 162.0, + "dynamic_range": 158.0, + "mean_gray": 66.34737827715355, + "std_gray": 62.727668651679416 + }, + "geometry": { + "distance_to_center_norm": 0.27842769026756287, + "distance_to_border_px": 379.0 + }, + "edge_ratio": 1.2507515233839759, + "edge_lengths_px": [ + 41.01219177246094, + 37.121421813964844, + 45.0444221496582, + 36.013885498046875 + ] + }, + "confidence": 0.7995193140316519 + }, + { + "observation_id": "e38eef6c-adab-488c-a30c-e58f79f13b6d", + "type": "aruco", + "marker_id": 143, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 692.0, + 529.0 + ], + [ + 727.0, + 560.0 + ], + [ + 723.0, + 591.0 + ], + [ + 687.0, + 559.0 + ] + ], + "center_px": [ + 707.25, + 559.75 + ], + "quality": { + "area_px": 1224.5, + "perimeter_px": 156.59187126159668, + "sharpness": { + "laplacian_var": 4971.205871113379 + }, + "contrast": { + "p05": 17.0, + "p95": 231.0, + "dynamic_range": 214.0, + "mean_gray": 106.79737783075089, + "std_gray": 82.47618614103679 + }, + "geometry": { + "distance_to_center_norm": 0.13039977848529816, + "distance_to_border_px": 369.0 + }, + "edge_ratio": 1.5837007545092228, + "edge_lengths_px": [ + 46.75468063354492, + 31.256999969482422, + 48.166378021240234, + 30.4138126373291 + ] + }, + "confidence": 0.5154593322059186 + }, + { + "observation_id": "c93c9631-3931-481d-9923-a5e0699caafb", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1042.0, + 289.0 + ], + [ + 1038.0, + 327.0 + ], + [ + 997.0, + 325.0 + ], + [ + 1001.0, + 289.0 + ] + ], + "center_px": [ + 1019.5, + 307.5 + ], + "quality": { + "area_px": 1521.0, + "perimeter_px": 156.48023986816406, + "sharpness": { + "laplacian_var": 2136.0225607720395 + }, + "contrast": { + "p05": 2.0, + "p95": 160.19999999999993, + "dynamic_range": 158.19999999999993, + "mean_gray": 56.89877010406812, + "std_gray": 63.035904294897165 + }, + "geometry": { + "distance_to_center_norm": 0.5210813283920288, + "distance_to_border_px": 238.0 + }, + "edge_ratio": 1.1332690205428815, + "edge_lengths_px": [ + 38.20994567871094, + 41.04875183105469, + 36.22154235839844, + 41.0 + ] + }, + "confidence": 0.8824030145295596 + }, + { + "observation_id": "f3c34b6f-f26b-424a-802b-d5325eb81fd4", + "type": "aruco", + "marker_id": 178, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 838.0, + 737.0 + ], + [ + 802.0, + 702.0 + ], + [ + 797.0, + 676.0 + ], + [ + 837.0, + 712.0 + ] + ], + "center_px": [ + 818.5, + 706.75 + ], + "quality": { + "area_px": 862.5, + "perimeter_px": 155.52045249938965, + "sharpness": { + "laplacian_var": 9170.464635127933 + }, + "contrast": { + "p05": 6.650000000000002, + "p95": 221.0, + "dynamic_range": 214.35, + "mean_gray": 103.3047138047138, + "std_gray": 80.06712090386364 + }, + "geometry": { + "distance_to_center_norm": 0.36072367429733276, + "distance_to_border_px": 223.0 + }, + "edge_ratio": 2.150859732687528, + "edge_lengths_px": [ + 50.20956039428711, + 26.476404190063477, + 53.81449508666992, + 25.01999282836914 + ] + }, + "confidence": 0.2673349597193536 + }, + { + "observation_id": "d4d45de3-510c-424d-9765-b51906fbdd09", + "type": "aruco", + "marker_id": 102, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 255.0, + 195.0 + ], + [ + 262.0, + 233.0 + ], + [ + 224.0, + 233.0 + ], + [ + 217.0, + 194.0 + ] + ], + "center_px": [ + 239.5, + 213.75 + ], + "quality": { + "area_px": 1459.5, + "perimeter_px": 154.27574157714844, + "sharpness": { + "laplacian_var": 2802.0305216415222 + }, + "contrast": { + "p05": 2.0, + "p95": 152.0, + "dynamic_range": 150.0, + "mean_gray": 75.7027833001988, + "std_gray": 62.627620258884285 + }, + "geometry": { + "distance_to_center_norm": 0.6011568307876587, + "distance_to_border_px": 194.0 + }, + "edge_ratio": 1.042716478046618, + "edge_lengths_px": [ + 38.63935852050781, + 38.0, + 39.623226165771484, + 38.01315689086914 + ] + }, + "confidence": 0.9331395642876747 + }, + { + "observation_id": "42adc657-e864-46e8-834e-44dbaa464bb5", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 604.0, + 535.0 + ], + [ + 644.0, + 520.0 + ], + [ + 638.0, + 549.0 + ], + [ + 592.0, + 565.0 + ] + ], + "center_px": [ + 619.5, + 542.25 + ], + "quality": { + "area_px": 1129.0, + "perimeter_px": 153.3483772277832, + "sharpness": { + "laplacian_var": 4317.245495941728 + }, + "contrast": { + "p05": 27.0, + "p95": 248.0, + "dynamic_range": 221.0, + "mean_gray": 95.68387096774194, + "std_gray": 76.21002853648422 + }, + "geometry": { + "distance_to_center_norm": 0.08192329108715057, + "distance_to_border_px": 395.0 + }, + "edge_ratio": 1.644589634068818, + "edge_lengths_px": [ + 42.72002029418945, + 29.614185333251953, + 48.703182220458984, + 32.31098937988281 + ] + }, + "confidence": 0.45766229524657903 + }, + { + "observation_id": "2762c94e-d44c-4e18-be56-51180d7d8b29", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 709.0, + 262.0 + ], + [ + 709.0, + 300.0 + ], + [ + 672.0, + 299.0 + ], + [ + 670.0, + 262.0 + ] + ], + "center_px": [ + 690.0, + 280.75 + ], + "quality": { + "area_px": 1424.5, + "perimeter_px": 151.0675277709961, + "sharpness": { + "laplacian_var": 1664.8265316077004 + }, + "contrast": { + "p05": 5.0, + "p95": 164.44999999999993, + "dynamic_range": 159.44999999999993, + "mean_gray": 73.3649193548387, + "std_gray": 67.18276633132176 + }, + "geometry": { + "distance_to_center_norm": 0.25678467750549316, + "distance_to_border_px": 262.0 + }, + "edge_ratio": 1.053669275173222, + "edge_lengths_px": [ + 38.0, + 37.013511657714844, + 37.05401611328125, + 39.0 + ] + }, + "confidence": 0.9012948266053811 + }, + { + "observation_id": "cd38ce9f-a1af-4727-a604-122675f30ce7", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 654.0, + 279.0 + ], + [ + 654.0, + 316.0 + ], + [ + 616.0, + 314.0 + ], + [ + 615.0, + 278.0 + ] + ], + "center_px": [ + 634.75, + 296.75 + ], + "quality": { + "area_px": 1404.5, + "perimeter_px": 150.0792999267578, + "sharpness": { + "laplacian_var": 1035.9144367928918 + }, + "contrast": { + "p05": 5.0, + "p95": 153.5, + "dynamic_range": 148.5, + "mean_gray": 30.481331987891018, + "std_gray": 44.693635950683245 + }, + "geometry": { + "distance_to_center_norm": 0.229156494140625, + "distance_to_border_px": 278.0 + }, + "edge_ratio": 1.083271544941416, + "edge_lengths_px": [ + 37.0, + 38.05259704589844, + 36.013885498046875, + 39.0128173828125 + ] + }, + "confidence": 0.8643569912878776 + }, + { + "observation_id": "6d1173d6-06bf-41c8-aafa-1baf762c6b7b", + "type": "aruco", + "marker_id": 71, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 78.0, + 94.0 + ], + [ + 84.0, + 134.0 + ], + [ + 49.0, + 132.0 + ], + [ + 42.0, + 95.0 + ] + ], + "center_px": [ + 63.25, + 113.75 + ], + "quality": { + "area_px": 1363.5, + "perimeter_px": 149.17481994628906, + "sharpness": { + "laplacian_var": 1061.6838146931582 + }, + "contrast": { + "p05": 7.0, + "p95": 139.0, + "dynamic_range": 132.0, + "mean_gray": 78.2542194092827, + "std_gray": 54.15152725581721 + }, + "geometry": { + "distance_to_center_norm": 0.8540158867835999, + "distance_to_border_px": 42.0 + }, + "edge_ratio": 1.1537607098667062, + "edge_lengths_px": [ + 40.4474983215332, + 35.05709457397461, + 37.656341552734375, + 36.013885498046875 + ] + }, + "confidence": 0.6618010073234457 + }, + { + "observation_id": "45d9ec23-112a-488a-a5b2-c5a451149038", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 272.0, + 255.0 + ], + [ + 278.0, + 292.0 + ], + [ + 241.0, + 291.0 + ], + [ + 234.0, + 255.0 + ] + ], + "center_px": [ + 256.25, + 273.25 + ], + "quality": { + "area_px": 1365.5, + "perimeter_px": 149.17108154296875, + "sharpness": { + "laplacian_var": 2304.256700196555 + }, + "contrast": { + "p05": 2.0, + "p95": 151.54999999999995, + "dynamic_range": 149.54999999999995, + "mean_gray": 45.240860215053765, + "std_gray": 56.82247442042655 + }, + "geometry": { + "distance_to_center_norm": 0.5448761582374573, + "distance_to_border_px": 234.0 + }, + "edge_ratio": 1.0361496211955732, + "edge_lengths_px": [ + 37.48332977294922, + 37.013511657714844, + 36.67424011230469, + 38.0 + ] + }, + "confidence": 0.8785732433921414 + }, + { + "observation_id": "a28c2d69-e006-4e98-8a5f-479ee4300d70", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 653.0, + 440.0 + ], + [ + 699.0, + 443.0 + ], + [ + 695.0, + 469.0 + ], + [ + 647.0, + 465.0 + ] + ], + "center_px": [ + 673.5, + 454.25 + ], + "quality": { + "area_px": 1216.0, + "perimeter_px": 146.2799129486084, + "sharpness": { + "laplacian_var": 4983.839856574276 + }, + "contrast": { + "p05": 24.0, + "p95": 252.0, + "dynamic_range": 228.0, + "mean_gray": 123.7377245508982, + "std_gray": 90.19758458784257 + }, + "geometry": { + "distance_to_center_norm": 0.052816201001405716, + "distance_to_border_px": 440.0 + }, + "edge_ratio": 1.8734549297175846, + "edge_lengths_px": [ + 46.097721099853516, + 26.305892944335938, + 48.166378021240234, + 25.70992088317871 + ] + }, + "confidence": 0.43271212656760905 + }, + { + "observation_id": "2ecb0e6c-8b7b-4d0c-ae60-8a1990a85ba4", + "type": "aruco", + "marker_id": 204, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 975.0, + 856.0 + ], + [ + 934.0, + 854.0 + ], + [ + 936.0, + 823.0 + ], + [ + 976.0, + 825.0 + ] + ], + "center_px": [ + 955.25, + 839.5 + ], + "quality": { + "area_px": 1258.5, + "perimeter_px": 143.17929458618164, + "sharpness": { + "laplacian_var": 2359.34559249011 + }, + "contrast": { + "p05": 2.0, + "p95": 150.0, + "dynamic_range": 148.0, + "mean_gray": 45.10321100917431, + "std_gray": 56.32959924548824 + }, + "geometry": { + "distance_to_center_norm": 0.59768146276474, + "distance_to_border_px": 104.0 + }, + "edge_ratio": 1.3234648813981493, + "edge_lengths_px": [ + 41.04875183105469, + 31.064449310302734, + 40.04996871948242, + 31.016124725341797 + ] + }, + "confidence": 0.6339420197637994 + }, + { + "observation_id": "8aeecd76-0a2b-4ab3-9388-61ba4680b90f", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 316.0, + 431.0 + ], + [ + 280.0, + 430.0 + ], + [ + 274.0, + 397.0 + ], + [ + 311.0, + 397.0 + ] + ], + "center_px": [ + 295.25, + 413.75 + ], + "quality": { + "area_px": 1220.0, + "perimeter_px": 140.92058563232422, + "sharpness": { + "laplacian_var": 2959.548509429609 + }, + "contrast": { + "p05": 3.0, + "p95": 155.0, + "dynamic_range": 152.0, + "mean_gray": 56.220024721878865, + "std_gray": 61.13264303139799 + }, + "geometry": { + "distance_to_center_norm": 0.43882232904434204, + "distance_to_border_px": 274.0 + }, + "edge_ratio": 1.103126876227527, + "edge_lengths_px": [ + 36.013885498046875, + 33.541019439697266, + 37.0, + 34.36568069458008 + ] + }, + "confidence": 0.7372980849807326 + }, + { + "observation_id": "b320474c-7819-48a1-8202-49088e7a3c52", + "type": "aruco", + "marker_id": 63, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 49.0, + 174.0 + ], + [ + 57.0, + 209.0 + ], + [ + 22.0, + 208.0 + ], + [ + 16.0, + 172.0 + ] + ], + "center_px": [ + 36.0, + 190.75 + ], + "quality": { + "area_px": 1196.5, + "perimeter_px": 140.47405242919922, + "sharpness": { + "laplacian_var": 790.2112214583311 + }, + "contrast": { + "p05": 5.0, + "p95": 130.0, + "dynamic_range": 125.0, + "mean_gray": 40.05018359853121, + "std_gray": 45.93211081058504 + }, + "geometry": { + "distance_to_center_norm": 0.8371096253395081, + "distance_to_border_px": 16.0 + }, + "edge_ratio": 1.103931230438608, + "edge_lengths_px": [ + 35.902645111083984, + 35.0142822265625, + 36.49657440185547, + 33.060550689697266 + ] + }, + "confidence": 0.23122213258874602 + }, + { + "observation_id": "9a016e8d-f506-4bc6-858e-a2af13defec3", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 499.0, + 431.0 + ], + [ + 462.0, + 431.0 + ], + [ + 459.0, + 398.0 + ], + [ + 496.0, + 398.0 + ] + ], + "center_px": [ + 479.0, + 414.5 + ], + "quality": { + "area_px": 1221.0, + "perimeter_px": 140.27216339111328, + "sharpness": { + "laplacian_var": 2535.826301666038 + }, + "contrast": { + "p05": 5.0, + "p95": 156.8499999999999, + "dynamic_range": 151.8499999999999, + "mean_gray": 63.866504854368934, + "std_gray": 61.34028233794266 + }, + "geometry": { + "distance_to_center_norm": 0.21726730465888977, + "distance_to_border_px": 398.0 + }, + "edge_ratio": 1.1166075802185593, + "edge_lengths_px": [ + 37.0, + 33.13608169555664, + 37.0, + 33.13608169555664 + ] + }, + "confidence": 0.7289937973022461 + }, + { + "observation_id": "134c9941-7d9a-479e-b340-a42212ca17db", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1076.0, + 576.0 + ], + [ + 1038.0, + 575.0 + ], + [ + 1042.0, + 544.0 + ], + [ + 1080.0, + 545.0 + ] + ], + "center_px": [ + 1059.0, + 560.0 + ], + "quality": { + "area_px": 1182.0, + "perimeter_px": 138.54031372070312, + "sharpness": { + "laplacian_var": 1991.5486187337017 + }, + "contrast": { + "p05": 2.0, + "p95": 144.0, + "dynamic_range": 142.0, + "mean_gray": 54.73299748110831, + "std_gray": 56.083481714688574 + }, + "geometry": { + "distance_to_center_norm": 0.5332111120223999, + "distance_to_border_px": 200.0 + }, + "edge_ratio": 1.2161486044080703, + "edge_lengths_px": [ + 38.01315689086914, + 31.256999969482422, + 38.01315689086914, + 31.256999969482422 + ] + }, + "confidence": 0.6479471317434429 + }, + { + "observation_id": "9271df4b-7847-455a-8492-a0543209ef4f", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 470.0, + 555.0 + ], + [ + 435.0, + 554.0 + ], + [ + 432.0, + 523.0 + ], + [ + 467.0, + 524.0 + ] + ], + "center_px": [ + 451.0, + 539.0 + ], + "quality": { + "area_px": 1082.0, + "perimeter_px": 132.31821060180664, + "sharpness": { + "laplacian_var": 3127.195140613587 + }, + "contrast": { + "p05": 4.0, + "p95": 159.0, + "dynamic_range": 155.0, + "mean_gray": 78.05405405405405, + "std_gray": 64.44110906570975 + }, + "geometry": { + "distance_to_center_norm": 0.2474936842918396, + "distance_to_border_px": 405.0 + }, + "edge_ratio": 1.1242408455166213, + "edge_lengths_px": [ + 35.0142822265625, + 31.14482307434082, + 35.0142822265625, + 31.14482307434082 + ] + }, + "confidence": 0.6416181516709258 + }, + { + "observation_id": "e51c38a1-114c-4c8e-a41b-402bf1086bb7", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 182.0, + 549.0 + ], + [ + 147.0, + 546.0 + ], + [ + 142.0, + 516.0 + ], + [ + 177.0, + 518.0 + ] + ], + "center_px": [ + 162.0, + 532.25 + ], + "quality": { + "area_px": 1055.0, + "perimeter_px": 131.99988174438477, + "sharpness": { + "laplacian_var": 2231.0355388958305 + }, + "contrast": { + "p05": 1.0, + "p95": 140.29999999999995, + "dynamic_range": 139.29999999999995, + "mean_gray": 48.16326530612245, + "std_gray": 53.60498514947272 + }, + "geometry": { + "distance_to_center_norm": 0.6010590195655823, + "distance_to_border_px": 142.0 + }, + "edge_ratio": 1.1550126345222447, + "edge_lengths_px": [ + 35.12833786010742, + 30.4138126373291, + 35.05709457397461, + 31.400636672973633 + ] + }, + "confidence": 0.6089399477645175 + }, + { + "observation_id": "99535715-4dfe-4e50-884c-c54215763933", + "type": "aruco", + "marker_id": 74, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1105.0, + 721.0 + ], + [ + 1102.0, + 749.0 + ], + [ + 1066.0, + 748.0 + ], + [ + 1070.0, + 721.0 + ] + ], + "center_px": [ + 1085.75, + 734.75 + ], + "quality": { + "area_px": 978.0, + "perimeter_px": 126.46882820129395, + "sharpness": { + "laplacian_var": 1749.3524475958802 + }, + "contrast": { + "p05": 1.0, + "p95": 126.0, + "dynamic_range": 125.0, + "mean_gray": 54.76834532374101, + "std_gray": 52.982143097369175 + }, + "geometry": { + "distance_to_center_norm": 0.64176344871521, + "distance_to_border_px": 175.0 + }, + "edge_ratio": 1.3194467165100996, + "edge_lengths_px": [ + 28.160255432128906, + 36.013885498046875, + 27.294687271118164, + 35.0 + ] + }, + "confidence": 0.4941465175073702 + }, + { + "observation_id": "77665455-c273-49a0-aa82-aca5304c480b", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 676.0, + 334.0 + ], + [ + 717.0, + 333.0 + ], + [ + 716.0, + 353.0 + ], + [ + 673.0, + 354.0 + ] + ], + "center_px": [ + 695.5, + 343.5 + ], + "quality": { + "area_px": 838.0, + "perimeter_px": 124.27255249023438, + "sharpness": { + "laplacian_var": 2542.999036859642 + }, + "contrast": { + "p05": 33.0, + "p95": 220.64999999999998, + "dynamic_range": 187.64999999999998, + "mean_gray": 96.47108843537416, + "std_gray": 70.46271398463598 + }, + "geometry": { + "distance_to_center_norm": 0.18418952822685242, + "distance_to_border_px": 333.0 + }, + "edge_ratio": 2.1478981668388917, + "edge_lengths_px": [ + 41.01219177246094, + 20.02498435974121, + 43.011627197265625, + 20.2237491607666 + ] + }, + "confidence": 0.26009923342356056 + }, + { + "observation_id": "23971d10-6d84-49a6-a15e-523177c7ccaf", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 740.0, + 334.0 + ], + [ + 781.0, + 334.0 + ], + [ + 780.0, + 354.0 + ], + [ + 737.0, + 354.0 + ] + ], + "center_px": [ + 759.5, + 344.0 + ], + "quality": { + "area_px": 840.0, + "perimeter_px": 124.24873352050781, + "sharpness": { + "laplacian_var": 2076.349645980841 + }, + "contrast": { + "p05": 34.0, + "p95": 201.64999999999998, + "dynamic_range": 167.64999999999998, + "mean_gray": 71.42006802721089, + "std_gray": 50.90131914942711 + }, + "geometry": { + "distance_to_center_norm": 0.22630266845226288, + "distance_to_border_px": 334.0 + }, + "edge_ratio": 2.147317532314702, + "edge_lengths_px": [ + 41.0, + 20.02498435974121, + 43.0, + 20.2237491607666 + ] + }, + "confidence": 0.26079049398732745 + }, + { + "observation_id": "d80c3de9-f5a8-4d8a-9c8d-90a177ac5de8", + "type": "aruco", + "marker_id": 75, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1272.0, + 789.0 + ], + [ + 1266.0, + 815.0 + ], + [ + 1232.0, + 814.0 + ], + [ + 1236.0, + 788.0 + ] + ], + "center_px": [ + 1251.5, + 801.5 + ], + "quality": { + "area_px": 915.0, + "perimeter_px": 123.01780891418457, + "sharpness": { + "laplacian_var": 1816.4613624673673 + }, + "contrast": { + "p05": 3.0, + "p95": 133.0, + "dynamic_range": 130.0, + "mean_gray": 66.15420560747664, + "std_gray": 50.68938661430687 + }, + "geometry": { + "distance_to_center_norm": 0.8635812997817993, + "distance_to_border_px": 8.0 + }, + "edge_ratio": 1.369042502159244, + "edge_lengths_px": [ + 26.68332862854004, + 34.01470184326172, + 26.305892944335938, + 36.013885498046875 + ] + }, + "confidence": 0.07129070123540064 + }, + { + "observation_id": "47cf26b2-b8cf-4416-b86d-5e30d9e3a1ae", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1209.0, + 782.0 + ], + [ + 1204.0, + 808.0 + ], + [ + 1169.0, + 807.0 + ], + [ + 1174.0, + 781.0 + ] + ], + "center_px": [ + 1189.0, + 794.5 + ], + "quality": { + "area_px": 915.0, + "perimeter_px": 122.98137283325195, + "sharpness": { + "laplacian_var": 1816.7850394503162 + }, + "contrast": { + "p05": 1.0, + "p95": 130.0, + "dynamic_range": 129.0, + "mean_gray": 43.04984423676012, + "std_gray": 49.76975656159107 + }, + "geometry": { + "distance_to_center_norm": 0.7908769249916077, + "distance_to_border_px": 71.0 + }, + "edge_ratio": 1.3224712077670753, + "edge_lengths_px": [ + 26.476404190063477, + 35.0142822265625, + 26.476404190063477, + 35.0142822265625 + ] + }, + "confidence": 0.4612576791217661 + }, + { + "observation_id": "072a8a8b-ff49-4388-b444-76afd009b4ff", + "type": "aruco", + "marker_id": 52, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1093.0, + 794.0 + ], + [ + 1091.0, + 821.0 + ], + [ + 1056.0, + 820.0 + ], + [ + 1060.0, + 793.0 + ] + ], + "center_px": [ + 1075.0, + 807.0 + ], + "quality": { + "area_px": 921.0, + "perimeter_px": 122.39809036254883, + "sharpness": { + "laplacian_var": 1920.239975729141 + }, + "contrast": { + "p05": 1.0, + "p95": 130.0, + "dynamic_range": 129.0, + "mean_gray": 39.375579598145286, + "std_gray": 48.535392114665605 + }, + "geometry": { + "distance_to_center_norm": 0.6802504062652588, + "distance_to_border_px": 139.0 + }, + "edge_ratio": 1.2932820244714893, + "edge_lengths_px": [ + 27.073972702026367, + 35.0142822265625, + 27.294687271118164, + 33.0151481628418 + ] + }, + "confidence": 0.4747611026689374 + }, + { + "observation_id": "b32a0395-94c4-4c61-b9f1-7c515364863f", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 288.0, + 710.0 + ], + [ + 292.0, + 736.0 + ], + [ + 260.0, + 735.0 + ], + [ + 255.0, + 709.0 + ] + ], + "center_px": [ + 273.75, + 722.5 + ], + "quality": { + "area_px": 840.5, + "perimeter_px": 117.81306648254395, + "sharpness": { + "laplacian_var": 2698.5141790858825 + }, + "contrast": { + "p05": 1.0, + "p95": 135.0, + "dynamic_range": 134.0, + "mean_gray": 53.73044925124792, + "std_gray": 53.75655874976381 + }, + "geometry": { + "distance_to_center_norm": 0.5490692257881165, + "distance_to_border_px": 224.0 + }, + "edge_ratio": 1.2550476135785562, + "edge_lengths_px": [ + 26.305892944335938, + 32.015621185302734, + 26.476404190063477, + 33.0151481628418 + ] + }, + "confidence": 0.4464638052540792 + }, + { + "observation_id": "7c4c067f-117d-44fd-b592-b889d922aff5", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 436.0, + 720.0 + ], + [ + 439.0, + 746.0 + ], + [ + 407.0, + 746.0 + ], + [ + 404.0, + 720.0 + ] + ], + "center_px": [ + 421.5, + 733.0 + ], + "quality": { + "area_px": 832.0, + "perimeter_px": 116.34500885009766, + "sharpness": { + "laplacian_var": 2814.371416182022 + }, + "contrast": { + "p05": 1.0, + "p95": 139.0, + "dynamic_range": 138.0, + "mean_gray": 45.72390572390572, + "std_gray": 51.96827445402133 + }, + "geometry": { + "distance_to_center_norm": 0.41786521673202515, + "distance_to_border_px": 214.0 + }, + "edge_ratio": 1.2226571626586056, + "edge_lengths_px": [ + 26.172504425048828, + 32.0, + 26.172504425048828, + 32.0 + ] + }, + "confidence": 0.453656743367513 + }, + { + "observation_id": "5205005d-a690-432e-8da8-06b99a96f2f6", + "type": "aruco", + "marker_id": 56, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 536.0, + 723.0 + ], + [ + 538.0, + 749.0 + ], + [ + 506.0, + 748.0 + ], + [ + 504.0, + 722.0 + ] + ], + "center_px": [ + 521.0, + 735.5 + ], + "quality": { + "area_px": 830.0, + "perimeter_px": 116.18486022949219, + "sharpness": { + "laplacian_var": 2090.1282460055972 + }, + "contrast": { + "p05": 1.0, + "p95": 133.0, + "dynamic_range": 132.0, + "mean_gray": 34.34192439862543, + "std_gray": 45.769874038417086 + }, + "geometry": { + "distance_to_center_norm": 0.35231655836105347, + "distance_to_border_px": 211.0 + }, + "edge_ratio": 1.2277430598171792, + "edge_lengths_px": [ + 26.07680892944336, + 32.015621185302734, + 26.07680892944336, + 32.015621185302734 + ] + }, + "confidence": 0.45069147726701797 + }, + { + "observation_id": "41d61e30-4e58-4d24-a99e-e961d21b04e8", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 487.0, + 739.0 + ], + [ + 489.0, + 765.0 + ], + [ + 458.0, + 764.0 + ], + [ + 455.0, + 738.0 + ] + ], + "center_px": [ + 472.25, + 751.5 + ], + "quality": { + "area_px": 816.5, + "perimeter_px": 115.28105926513672, + "sharpness": { + "laplacian_var": 3315.7737863275115 + }, + "contrast": { + "p05": 1.0500000000000007, + "p95": 142.0, + "dynamic_range": 140.95, + "mean_gray": 63.55670103092783, + "std_gray": 58.0052674001377 + }, + "geometry": { + "distance_to_center_norm": 0.3989288806915283, + "distance_to_border_px": 195.0 + }, + "edge_ratio": 1.2277430598171792, + "edge_lengths_px": [ + 26.07680892944336, + 31.016124725341797, + 26.172504425048828, + 32.015621185302734 + ] + }, + "confidence": 0.4433609532391809 + }, + { + "observation_id": "3aa6c354-9dff-43e9-ba0c-8b5870151313", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 556.0, + 771.0 + ], + [ + 558.0, + 797.0 + ], + [ + 527.0, + 795.0 + ], + [ + 524.0, + 770.0 + ] + ], + "center_px": [ + 541.25, + 783.25 + ], + "quality": { + "area_px": 799.5, + "perimeter_px": 114.33623695373535, + "sharpness": { + "laplacian_var": 3277.618551956536 + }, + "contrast": { + "p05": 2.0, + "p95": 143.0, + "dynamic_range": 141.0, + "mean_gray": 69.56942003514939, + "std_gray": 58.12403421211148 + }, + "geometry": { + "distance_to_center_norm": 0.3986542224884033, + "distance_to_border_px": 163.0 + }, + "edge_ratio": 1.271502704103063, + "edge_lengths_px": [ + 26.07680892944336, + 31.064449310302734, + 25.179357528686523, + 32.015621185302734 + ] + }, + "confidence": 0.41918904165916515 + }, + { + "observation_id": "9d790a8d-016d-451f-8b91-8df629fa410c", + "type": "aruco", + "marker_id": 243, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 873.0, + 346.0 + ], + [ + 829.0, + 347.0 + ], + [ + 830.0, + 332.0 + ], + [ + 873.0, + 334.0 + ] + ], + "center_px": [ + 851.25, + 339.75 + ], + "quality": { + "area_px": 587.5, + "perimeter_px": 114.09114646911621, + "sharpness": { + "laplacian_var": 4688.545549105995 + }, + "contrast": { + "p05": 48.400000000000006, + "p95": 215.0, + "dynamic_range": 166.6, + "mean_gray": 108.70904645476773, + "std_gray": 61.941023620531254 + }, + "geometry": { + "distance_to_center_norm": 0.3169597387313843, + "distance_to_border_px": 332.0 + }, + "edge_ratio": 3.667613665262858, + "edge_lengths_px": [ + 44.0113639831543, + 15.033296585083008, + 43.046485900878906, + 12.0 + ] + }, + "confidence": 0.10679060075936213 + }, + { + "observation_id": "0d1cfb7c-1835-4861-b3f1-a5c6469efa96", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 441.0, + 765.0 + ], + [ + 444.0, + 792.0 + ], + [ + 413.0, + 789.0 + ], + [ + 410.0, + 765.0 + ] + ], + "center_px": [ + 427.0, + 777.75 + ], + "quality": { + "area_px": 786.0, + "perimeter_px": 113.49775123596191, + "sharpness": { + "laplacian_var": 2856.4852071580144 + }, + "contrast": { + "p05": 1.0, + "p95": 138.25, + "dynamic_range": 137.25, + "mean_gray": 40.98381294964029, + "std_gray": 50.69216686180291 + }, + "geometry": { + "distance_to_center_norm": 0.4576162099838257, + "distance_to_border_px": 168.0 + }, + "edge_ratio": 1.2876799516751065, + "edge_lengths_px": [ + 27.166154861450195, + 31.14482307434082, + 24.1867733001709, + 31.0 + ] + }, + "confidence": 0.4069334148740479 + }, + { + "observation_id": "1601855c-5adf-4c3b-ba9e-da6dbcd0f1dc", + "type": "aruco", + "marker_id": 101, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1048.0, + 888.0 + ], + [ + 1046.0, + 914.0 + ], + [ + 1014.0, + 911.0 + ], + [ + 1016.0, + 888.0 + ] + ], + "center_px": [ + 1031.0, + 900.25 + ], + "quality": { + "area_px": 787.0, + "perimeter_px": 113.30391693115234, + "sharpness": { + "laplacian_var": 2484.9192828886457 + }, + "contrast": { + "p05": 1.0, + "p95": 131.0, + "dynamic_range": 130.0, + "mean_gray": 55.194495412844034, + "std_gray": 51.402591293804136 + }, + "geometry": { + "distance_to_center_norm": 0.7175164222717285, + "distance_to_border_px": 46.0 + }, + "edge_ratio": 1.392151669248706, + "edge_lengths_px": [ + 26.07680892944336, + 32.140316009521484, + 23.0867919921875, + 32.0 + ] + }, + "confidence": 0.34672467375183735 + }, + { + "observation_id": "c67c54a9-fd84-43b3-9f55-94be886e247a", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 911.0, + 879.0 + ], + [ + 910.0, + 903.0 + ], + [ + 878.0, + 902.0 + ], + [ + 879.0, + 877.0 + ] + ], + "center_px": [ + 894.5, + 890.25 + ], + "quality": { + "area_px": 785.5, + "perimeter_px": 113.11887741088867, + "sharpness": { + "laplacian_var": 2472.0055760328414 + }, + "contrast": { + "p05": 1.0, + "p95": 129.0, + "dynamic_range": 128.0, + "mean_gray": 53.53084112149533, + "std_gray": 52.592370739872315 + }, + "geometry": { + "distance_to_center_norm": 0.603473424911499, + "distance_to_border_px": 57.0 + }, + "edge_ratio": 1.3347767914923419, + "edge_lengths_px": [ + 24.020824432373047, + 32.015621185302734, + 25.01999282836914, + 32.06243896484375 + ] + }, + "confidence": 0.39232527116476396 + }, + { + "observation_id": "97e29848-9dad-4f6f-9a3b-69e9ab5fa384", + "type": "aruco", + "marker_id": 100, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 132.0, + 712.0 + ], + [ + 138.0, + 737.0 + ], + [ + 108.0, + 735.0 + ], + [ + 102.0, + 710.0 + ] + ], + "center_px": [ + 120.0, + 723.5 + ], + "quality": { + "area_px": 738.0, + "perimeter_px": 111.55302810668945, + "sharpness": { + "laplacian_var": 1580.9692307692308 + }, + "contrast": { + "p05": 1.0, + "p95": 125.04999999999995, + "dynamic_range": 124.04999999999995, + "mean_gray": 59.49230769230769, + "std_gray": 49.32650187254564 + }, + "geometry": { + "distance_to_center_norm": 0.7177354693412781, + "distance_to_border_px": 102.0 + }, + "edge_ratio": 1.1694549083516532, + "edge_lengths_px": [ + 25.70992088317871, + 30.066593170166016, + 25.70992088317871, + 30.066593170166016 + ] + }, + "confidence": 0.4207088246724057 + }, + { + "observation_id": "76367b73-0c9d-4b90-892b-135477b4ce80", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 906.0, + 915.0 + ], + [ + 904.0, + 939.0 + ], + [ + 873.0, + 937.0 + ], + [ + 873.0, + 914.0 + ] + ], + "center_px": [ + 889.0, + 926.25 + ], + "quality": { + "area_px": 753.5, + "perimeter_px": 111.16278648376465, + "sharpness": { + "laplacian_var": 2833.4641142797514 + }, + "contrast": { + "p05": 1.0, + "p95": 132.0, + "dynamic_range": 131.0, + "mean_gray": 60.19305019305019, + "std_gray": 51.33384364942621 + }, + "geometry": { + "distance_to_center_norm": 0.6387733221054077, + "distance_to_border_px": 21.0 + }, + "edge_ratio": 1.4354412244713826, + "edge_lengths_px": [ + 24.083189010620117, + 31.064449310302734, + 23.0, + 33.0151481628418 + ] + }, + "confidence": 0.1469791980355697 + }, + { + "observation_id": "f4d1e251-fabb-4368-8295-2998ecf647ae", + "type": "aruco", + "marker_id": 60, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 628.0, + 849.0 + ], + [ + 629.0, + 874.0 + ], + [ + 598.0, + 871.0 + ], + [ + 597.0, + 848.0 + ] + ], + "center_px": [ + 613.0, + 860.5 + ], + "quality": { + "area_px": 742.0, + "perimeter_px": 110.20266914367676, + "sharpness": { + "laplacian_var": 2415.3878727757456 + }, + "contrast": { + "p05": 2.0, + "p95": 145.0, + "dynamic_range": 143.0, + "mean_gray": 77.91141732283465, + "std_gray": 58.320675649613456 + }, + "geometry": { + "distance_to_center_norm": 0.4768209457397461, + "distance_to_border_px": 86.0 + }, + "edge_ratio": 1.3528446855414276, + "edge_lengths_px": [ + 25.01999282836914, + 31.14482307434082, + 23.021728515625, + 31.016124725341797 + ] + }, + "confidence": 0.36564926628565203 + }, + { + "observation_id": "13e50bba-9a2b-4e02-94cf-e13c07312c28", + "type": "aruco", + "marker_id": 67, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 512.0, + 826.0 + ], + [ + 514.0, + 851.0 + ], + [ + 484.0, + 849.0 + ], + [ + 481.0, + 826.0 + ] + ], + "center_px": [ + 497.75, + 838.0 + ], + "quality": { + "area_px": 729.5, + "perimeter_px": 109.3412914276123, + "sharpness": { + "laplacian_var": 2882.179443858888 + }, + "contrast": { + "p05": 1.0, + "p95": 134.0, + "dynamic_range": 133.0, + "mean_gray": 41.15944881889764, + "std_gray": 48.376844298312065 + }, + "geometry": { + "distance_to_center_norm": 0.481532484292984, + "distance_to_border_px": 109.0 + }, + "edge_ratio": 1.336504952935131, + "edge_lengths_px": [ + 25.079872131347656, + 30.066593170166016, + 23.194826126098633, + 31.0 + ] + }, + "confidence": 0.363884422773956 + }, + { + "observation_id": "5e0075ba-41ca-4a35-9371-e2280381e658", + "type": "aruco", + "marker_id": 70, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 415.0, + 855.0 + ], + [ + 418.0, + 879.0 + ], + [ + 388.0, + 878.0 + ], + [ + 384.0, + 855.0 + ] + ], + "center_px": [ + 401.25, + 866.75 + ], + "quality": { + "area_px": 715.0, + "perimeter_px": 108.54867172241211, + "sharpness": { + "laplacian_var": 2302.4931804104303 + }, + "contrast": { + "p05": 1.0, + "p95": 139.0, + "dynamic_range": 138.0, + "mean_gray": 58.054325955734406, + "std_gray": 55.06907192329784 + }, + "geometry": { + "distance_to_center_norm": 0.5681344866752625, + "distance_to_border_px": 81.0 + }, + "edge_ratio": 1.3278940608239123, + "edge_lengths_px": [ + 24.1867733001709, + 30.01666259765625, + 23.34523582458496, + 31.0 + ] + }, + "confidence": 0.35896437880813437 + }, + { + "observation_id": "a217804e-48d6-4a78-b903-71fbdc9cae9f", + "type": "aruco", + "marker_id": 94, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 39.0, + 708.0 + ], + [ + 47.0, + 733.0 + ], + [ + 19.0, + 732.0 + ], + [ + 11.0, + 708.0 + ] + ], + "center_px": [ + 29.0, + 720.25 + ], + "quality": { + "area_px": 682.0, + "perimeter_px": 107.56488227844238, + "sharpness": { + "laplacian_var": 815.9310933965594 + }, + "contrast": { + "p05": 5.900000000000002, + "p95": 116.0, + "dynamic_range": 110.1, + "mean_gray": 44.38413361169102, + "std_gray": 37.98503494511662 + }, + "geometry": { + "distance_to_center_norm": 0.8206714391708374, + "distance_to_border_px": 11.0 + }, + "edge_ratio": 1.1075027854525266, + "edge_lengths_px": [ + 26.248809814453125, + 28.017850875854492, + 25.298221588134766, + 28.0 + ] + }, + "confidence": 0.09031730482356817 + }, + { + "observation_id": "4373de15-3003-4cc1-837f-4529bf55f235", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 365.0, + 869.0 + ], + [ + 368.0, + 893.0 + ], + [ + 338.0, + 891.0 + ], + [ + 335.0, + 868.0 + ] + ], + "center_px": [ + 351.5, + 880.25 + ], + "quality": { + "area_px": 700.5, + "perimeter_px": 107.4648551940918, + "sharpness": { + "laplacian_var": 2314.9952658629873 + }, + "contrast": { + "p05": 1.0, + "p95": 137.84999999999997, + "dynamic_range": 136.84999999999997, + "mean_gray": 58.88429752066116, + "std_gray": 55.18985864480716 + }, + "geometry": { + "distance_to_center_norm": 0.6167357563972473, + "distance_to_border_px": 67.0 + }, + "edge_ratio": 1.2962629254778213, + "edge_lengths_px": [ + 24.1867733001709, + 30.066593170166016, + 23.194826126098633, + 30.01666259765625 + ] + }, + "confidence": 0.36026641726859315 + }, + { + "observation_id": "b5411eba-2479-4f9c-91b6-1b9c96dfb4fa", + "type": "aruco", + "marker_id": 104, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 118.0, + 780.0 + ], + [ + 125.0, + 805.0 + ], + [ + 97.0, + 804.0 + ], + [ + 90.0, + 780.0 + ] + ], + "center_px": [ + 107.5, + 792.25 + ], + "quality": { + "area_px": 682.5, + "perimeter_px": 106.97936058044434, + "sharpness": { + "laplacian_var": 986.7426952959843 + }, + "contrast": { + "p05": 6.0, + "p95": 127.0, + "dynamic_range": 121.0, + "mean_gray": 70.1407249466951, + "std_gray": 47.11725409645167 + }, + "geometry": { + "distance_to_center_norm": 0.7716220021247864, + "distance_to_border_px": 90.0 + }, + "edge_ratio": 1.1207140350341798, + "edge_lengths_px": [ + 25.961509704589844, + 28.017850875854492, + 25.0, + 28.0 + ] + }, + "confidence": 0.40599116793083023 + }, + { + "observation_id": "ca7144dc-a59d-4f67-9d99-8b2149851f3b", + "type": "aruco", + "marker_id": 98, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 450.0, + 871.0 + ], + [ + 453.0, + 894.0 + ], + [ + 423.0, + 893.0 + ], + [ + 420.0, + 870.0 + ] + ], + "center_px": [ + 436.5, + 882.0 + ], + "quality": { + "area_px": 687.0, + "perimeter_px": 106.42297744750977, + "sharpness": { + "laplacian_var": 2678.5232759275736 + }, + "contrast": { + "p05": 1.0, + "p95": 138.39999999999998, + "dynamic_range": 137.39999999999998, + "mean_gray": 55.397463002114165, + "std_gray": 54.019088258800295 + }, + "geometry": { + "distance_to_center_norm": 0.5632165670394897, + "distance_to_border_px": 66.0 + }, + "edge_ratio": 1.2941102655596863, + "edge_lengths_px": [ + 23.194826126098633, + 30.01666259765625, + 23.194826126098633, + 30.01666259765625 + ] + }, + "confidence": 0.35391110957760685 + }, + { + "observation_id": "12a78e31-524f-4431-966a-5e290b106274", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 267.0, + 876.0 + ], + [ + 271.0, + 899.0 + ], + [ + 242.0, + 898.0 + ], + [ + 237.0, + 875.0 + ] + ], + "center_px": [ + 254.25, + 887.0 + ], + "quality": { + "area_px": 674.0, + "perimeter_px": 105.91633987426758, + "sharpness": { + "laplacian_var": 1874.0285374554103 + }, + "contrast": { + "p05": 2.0, + "p95": 133.0, + "dynamic_range": 131.0, + "mean_gray": 52.60129310344828, + "std_gray": 52.375164373541296 + }, + "geometry": { + "distance_to_center_norm": 0.7009503245353699, + "distance_to_border_px": 61.0 + }, + "edge_ratio": 1.285772515780097, + "edge_lengths_px": [ + 23.34523582458496, + 29.017236709594727, + 23.53720474243164, + 30.01666259765625 + ] + }, + "confidence": 0.3494656541641164 + }, + { + "observation_id": "ae4eb5a8-be04-499c-a18a-6abff68f9676", + "type": "aruco", + "marker_id": 88, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 211.0, + 862.0 + ], + [ + 216.0, + 886.0 + ], + [ + 188.0, + 883.0 + ], + [ + 183.0, + 861.0 + ] + ], + "center_px": [ + 199.5, + 873.0 + ], + "quality": { + "area_px": 634.0, + "perimeter_px": 103.25443458557129, + "sharpness": { + "laplacian_var": 1392.538662617389 + }, + "contrast": { + "p05": 3.0, + "p95": 130.0, + "dynamic_range": 127.0, + "mean_gray": 60.808126410835214, + "std_gray": 50.43384444337376 + }, + "geometry": { + "distance_to_center_norm": 0.7379122376441956, + "distance_to_border_px": 74.0 + }, + "edge_ratio": 1.2481814225264523, + "edge_lengths_px": [ + 24.515300750732422, + 28.160255432128906, + 22.56102752685547, + 28.017850875854492 + ] + }, + "confidence": 0.33862598740745903 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 223.0, + 510.0 + ], + [ + 266.0, + 511.0 + ], + [ + 272.0, + 548.0 + ], + [ + 230.0, + 547.0 + ] + ], + "center_px": [ + 247.75, + 529.0 + ], + "area_px": 1566.0 + }, + { + "image_points_px": [ + [ + 707.0, + 447.0 + ], + [ + 738.0, + 474.0 + ], + [ + 740.0, + 504.0 + ], + [ + 704.0, + 473.0 + ] + ], + "center_px": [ + 722.25, + 474.5 + ], + "area_px": 952.5 + }, + { + "image_points_px": [ + [ + 823.0, + 519.0 + ], + [ + 840.0, + 514.0 + ], + [ + 875.0, + 517.0 + ], + [ + 863.0, + 521.0 + ] + ], + "center_px": [ + 850.25, + 517.75 + ], + "area_px": 205.0 + }, + { + "image_points_px": [ + [ + 1022.0, + 746.0 + ], + [ + 1046.0, + 747.0 + ], + [ + 1042.0, + 775.0 + ], + [ + 1018.0, + 774.0 + ] + ], + "center_px": [ + 1032.0, + 760.5 + ], + "area_px": 676.0 + }, + { + "image_points_px": [ + [ + 681.0, + 743.0 + ], + [ + 649.0, + 783.0 + ], + [ + 651.0, + 775.0 + ], + [ + 675.0, + 745.0 + ] + ], + "center_px": [ + 664.0, + 761.5 + ], + "area_px": 154.0 + }, + { + "image_points_px": [ + [ + 541.0, + 552.0 + ], + [ + 504.0, + 553.0 + ], + [ + 494.0, + 548.0 + ], + [ + 533.0, + 544.0 + ] + ], + "center_px": [ + 518.0, + 549.25 + ], + "area_px": 269.5 + }, + { + "image_points_px": [ + [ + 641.0, + 810.0 + ], + [ + 649.0, + 804.0 + ], + [ + 675.0, + 830.0 + ], + [ + 666.0, + 834.0 + ] + ], + "center_px": [ + 657.75, + 819.5 + ], + "area_px": 340.0 + }, + { + "image_points_px": [ + [ + 905.0, + 568.0 + ], + [ + 904.0, + 591.0 + ], + [ + 900.0, + 601.0 + ], + [ + 901.0, + 568.0 + ] + ], + "center_px": [ + 902.5, + 582.0 + ], + "area_px": 107.0 + }, + { + "image_points_px": [ + [ + 679.0, + 372.0 + ], + [ + 675.0, + 397.0 + ], + [ + 668.0, + 400.0 + ], + [ + 674.0, + 374.0 + ] + ], + "center_px": [ + 674.0, + 385.75 + ], + "area_px": 140.5 + }, + { + "image_points_px": [ + [ + 702.0, + 378.0 + ], + [ + 707.0, + 380.0 + ], + [ + 704.0, + 399.0 + ], + [ + 698.0, + 397.0 + ] + ], + "center_px": [ + 702.75, + 388.5 + ], + "area_px": 111.5 + }, + { + "image_points_px": [ + [ + 898.0, + 744.0 + ], + [ + 900.0, + 748.0 + ], + [ + 897.0, + 768.0 + ], + [ + 896.0, + 748.0 + ] + ], + "center_px": [ + 897.75, + 752.0 + ], + "area_px": 48.0 + }, + { + "image_points_px": [ + [ + 602.0, + 783.0 + ], + [ + 599.0, + 806.0 + ], + [ + 597.0, + 802.0 + ], + [ + 597.0, + 787.0 + ] + ], + "center_px": [ + 598.75, + 794.5 + ], + "area_px": 66.5 + }, + { + "image_points_px": [ + [ + 749.0, + 436.0 + ], + [ + 750.0, + 439.0 + ], + [ + 745.0, + 458.0 + ], + [ + 743.0, + 456.0 + ] + ], + "center_px": [ + 746.75, + 447.25 + ], + "area_px": 43.0 + }, + { + "image_points_px": [ + [ + 422.0, + 781.0 + ], + [ + 438.0, + 782.0 + ], + [ + 439.0, + 787.0 + ], + [ + 423.0, + 787.0 + ] + ], + "center_px": [ + 430.5, + 784.25 + ], + "area_px": 87.5 + }, + { + "image_points_px": [ + [ + 645.0, + 576.0 + ], + [ + 656.0, + 576.0 + ], + [ + 656.0, + 584.0 + ], + [ + 644.0, + 584.0 + ] + ], + "center_px": [ + 650.25, + 580.0 + ], + "area_px": 92.0 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam1_camera_pose.json b/data/homing/20260625_175916/cam1_camera_pose.json new file mode 100644 index 0000000..881523d --- /dev/null +++ b/data/homing/20260625_175916/cam1_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam1_debug.jpg b/data/homing/20260625_175916/cam1_debug.jpg new file mode 100644 index 0000000..f52b6e0 Binary files /dev/null and b/data/homing/20260625_175916/cam1_debug.jpg differ diff --git a/data/homing/20260625_175916/cam2.jpg b/data/homing/20260625_175916/cam2.jpg new file mode 100644 index 0000000..7164a42 Binary files /dev/null and b/data/homing/20260625_175916/cam2.jpg differ diff --git a/data/homing/20260625_175916/cam2_aruco_detection.json b/data/homing/20260625_175916/cam2_aruco_detection.json new file mode 100644 index 0000000..3c36c2d --- /dev/null +++ b/data/homing/20260625_175916/cam2_aruco_detection.json @@ -0,0 +1,3092 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-25T17:59:27Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam2", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam2_calibration.npz", + "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 + ] + }, + "image": { + "image_file": "/app/data/homing/20260625_175916/cam2.jpg", + "image_sha256": "e406d47f9af9841c10b0f2d1f63f4a78bf13deffb2e3b373f35b17212849378f", + "width_px": 1920, + "height_px": 1080 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 54, + "num_rejected_candidates": 5 + }, + "detections": [ + { + "observation_id": "a83c3a74-378b-4281-8f43-71f3e5afd57f", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 914.0, + 1039.0 + ], + [ + 940.0, + 1010.0 + ], + [ + 972.0, + 1036.0 + ], + [ + 946.0, + 1065.0 + ] + ], + "center_px": [ + 943.0, + 1037.5 + ], + "quality": { + "area_px": 1604.0, + "perimeter_px": 160.35948181152344, + "sharpness": { + "laplacian_var": 2215.2598124158358 + }, + "contrast": { + "p05": 9.0, + "p95": 159.0, + "dynamic_range": 150.0, + "mean_gray": 95.29017447199266, + "std_gray": 62.72001352277011 + }, + "geometry": { + "distance_to_center_norm": 0.45193949341773987, + "distance_to_border_px": 15.0 + }, + "edge_ratio": 1.0585994505083367, + "edge_lengths_px": [ + 38.94868469238281, + 41.231056213378906, + 38.94868469238281, + 41.231056213378906 + ] + }, + "confidence": 0.28339330788046485 + }, + { + "observation_id": "49763024-56bb-4890-9a19-c001fc6dd1d5", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1233.0, + 1041.0 + ], + [ + 1253.0, + 1013.0 + ], + [ + 1288.0, + 1039.0 + ], + [ + 1268.0, + 1068.0 + ] + ], + "center_px": [ + 1260.5, + 1040.25 + ], + "quality": { + "area_px": 1527.5, + "perimeter_px": 157.4416618347168, + "sharpness": { + "laplacian_var": 1265.453084073945 + }, + "contrast": { + "p05": 6.0, + "p95": 147.0, + "dynamic_range": 141.0, + "mean_gray": 45.643968871595334, + "std_gray": 53.31998782593434 + }, + "geometry": { + "distance_to_center_norm": 0.5298151969909668, + "distance_to_border_px": 12.0 + }, + "edge_ratio": 1.2846546947115982, + "edge_lengths_px": [ + 34.4093017578125, + 43.600460052490234, + 35.22782897949219, + 44.204071044921875 + ] + }, + "confidence": 0.186820630468236 + }, + { + "observation_id": "6ef27b0e-f7f5-44ec-a544-82e92398e8a8", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 991.0, + 1007.0 + ], + [ + 1015.0, + 979.0 + ], + [ + 1047.0, + 1004.0 + ], + [ + 1022.0, + 1032.0 + ] + ], + "center_px": [ + 1018.75, + 1005.5 + ], + "quality": { + "area_px": 1494.5, + "perimeter_px": 154.84732055664062, + "sharpness": { + "laplacian_var": 953.0447839999999 + }, + "contrast": { + "p05": 8.0, + "p95": 145.04999999999995, + "dynamic_range": 137.04999999999995, + "mean_gray": 30.108, + "std_gray": 41.54674880180156 + }, + "geometry": { + "distance_to_center_norm": 0.4259759187698364, + "distance_to_border_px": 48.0 + }, + "edge_ratio": 1.1011357456969009, + "edge_lengths_px": [ + 36.878177642822266, + 40.607879638671875, + 37.53664779663086, + 39.824615478515625 + ] + }, + "confidence": 0.868630415221559 + }, + { + "observation_id": "c77955db-0be9-4455-867e-ed6db9e5e6af", + "type": "aruco", + "marker_id": 147, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1026.0, + 500.0 + ], + [ + 986.0, + 489.0 + ], + [ + 994.0, + 455.0 + ], + [ + 1035.0, + 467.0 + ] + ], + "center_px": [ + 1010.25, + 477.75 + ], + "quality": { + "area_px": 1454.5, + "perimeter_px": 153.33871459960938, + "sharpness": { + "laplacian_var": 3234.2340945304372 + }, + "contrast": { + "p05": 18.550000000000004, + "p95": 237.0, + "dynamic_range": 218.45, + "mean_gray": 80.6320564516129, + "std_gray": 79.81258731147395 + }, + "geometry": { + "distance_to_center_norm": 0.07263199985027313, + "distance_to_border_px": 455.0 + }, + "edge_ratio": 1.248931268390258, + "edge_lengths_px": [ + 41.48493576049805, + 34.928497314453125, + 42.72002029418945, + 34.20526123046875 + ] + }, + "confidence": 0.7763971414667724 + }, + { + "observation_id": "dac4298c-72aa-44a6-a09d-529f079f8c99", + "type": "aruco", + "marker_id": 148, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1009.0, + 440.0 + ], + [ + 977.0, + 419.0 + ], + [ + 986.0, + 383.0 + ], + [ + 1018.0, + 404.0 + ] + ], + "center_px": [ + 997.5, + 411.5 + ], + "quality": { + "area_px": 1341.0, + "perimeter_px": 150.76654052734375, + "sharpness": { + "laplacian_var": 5150.403416971768 + }, + "contrast": { + "p05": 18.0, + "p95": 240.0, + "dynamic_range": 222.0, + "mean_gray": 92.87986651835372, + "std_gray": 83.39489548845643 + }, + "geometry": { + "distance_to_center_norm": 0.12153030931949615, + "distance_to_border_px": 383.0 + }, + "edge_ratio": 1.0314586486508992, + "edge_lengths_px": [ + 38.27531814575195, + 37.10795211791992, + 38.27531814575195, + 37.10795211791992 + ] + }, + "confidence": 0.8667337281715668 + }, + { + "observation_id": "5f0a1f12-2c27-4bfb-a9ef-7ab030162bfa", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 623.0, + 883.0 + ], + [ + 654.0, + 861.0 + ], + [ + 678.0, + 884.0 + ], + [ + 648.0, + 908.0 + ] + ], + "center_px": [ + 650.75, + 884.0 + ], + "quality": { + "area_px": 1295.5, + "perimeter_px": 145.02878189086914, + "sharpness": { + "laplacian_var": 2135.809518386192 + }, + "contrast": { + "p05": 7.0, + "p95": 163.0, + "dynamic_range": 156.0, + "mean_gray": 80.59841628959276, + "std_gray": 66.53399122585454 + }, + "geometry": { + "distance_to_center_norm": 0.4199637770652771, + "distance_to_border_px": 172.0 + }, + "edge_ratio": 1.1557451340188913, + "edge_lengths_px": [ + 38.01315689086914, + 33.241539001464844, + 38.41874694824219, + 35.35533905029297 + ] + }, + "confidence": 0.7472812484733762 + }, + { + "observation_id": "016fa3ec-c95a-4173-a003-3bd8e1567310", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 700.0, + 891.0 + ], + [ + 729.0, + 868.0 + ], + [ + 754.0, + 892.0 + ], + [ + 727.0, + 915.0 + ] + ], + "center_px": [ + 727.5, + 891.5 + ], + "quality": { + "area_px": 1270.0, + "perimeter_px": 143.26203536987305, + "sharpness": { + "laplacian_var": 1503.3612969280516 + }, + "contrast": { + "p05": 7.0, + "p95": 158.0, + "dynamic_range": 151.0, + "mean_gray": 39.71196283391405, + "std_gray": 51.52977519313533 + }, + "geometry": { + "distance_to_center_norm": 0.382618248462677, + "distance_to_border_px": 165.0 + }, + "edge_ratio": 1.0680431762486382, + "edge_lengths_px": [ + 37.013511657714844, + 34.65544509887695, + 35.46829605102539, + 36.12478256225586 + ] + }, + "confidence": 0.7927270034536174 + }, + { + "observation_id": "13955a91-2525-46eb-b3e6-58b46440d508", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1304.0, + 886.0 + ], + [ + 1338.0, + 908.0 + ], + [ + 1322.0, + 933.0 + ], + [ + 1287.0, + 911.0 + ] + ], + "center_px": [ + 1312.75, + 909.5 + ], + "quality": { + "area_px": 1225.5, + "perimeter_px": 141.75104522705078, + "sharpness": { + "laplacian_var": 1396.9586006209686 + }, + "contrast": { + "p05": 7.0, + "p95": 145.0, + "dynamic_range": 138.0, + "mean_gray": 54.80923450789793, + "std_gray": 55.193760651412134 + }, + "geometry": { + "distance_to_center_norm": 0.4637918174266815, + "distance_to_border_px": 147.0 + }, + "edge_ratio": 1.3927817794037038, + "edge_lengths_px": [ + 40.49691390991211, + 29.681644439697266, + 41.34005355834961, + 30.232433319091797 + ] + }, + "confidence": 0.5865958415608975 + }, + { + "observation_id": "672235e5-92b3-4d11-b379-0dbbcef60fc3", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1515.0, + 893.0 + ], + [ + 1550.0, + 915.0 + ], + [ + 1535.0, + 939.0 + ], + [ + 1500.0, + 915.0 + ] + ], + "center_px": [ + 1525.0, + 915.5 + ], + "quality": { + "area_px": 1150.0, + "perimeter_px": 138.7072410583496, + "sharpness": { + "laplacian_var": 1319.8758986317605 + }, + "contrast": { + "p05": 6.0, + "p95": 141.0, + "dynamic_range": 135.0, + "mean_gray": 51.8248730964467, + "std_gray": 51.53919991154273 + }, + "geometry": { + "distance_to_center_norm": 0.6159124970436096, + "distance_to_border_px": 141.0 + }, + "edge_ratio": 1.5937996790170945, + "edge_lengths_px": [ + 41.34005355834961, + 28.301942825317383, + 42.43819046020508, + 26.62705421447754 + ] + }, + "confidence": 0.48103075735306616 + }, + { + "observation_id": "6dafbd27-5c30-4b2d-87f4-b361fe71dbcb", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 753.0, + 850.0 + ], + [ + 780.0, + 829.0 + ], + [ + 806.0, + 850.0 + ], + [ + 779.0, + 873.0 + ] + ], + "center_px": [ + 779.5, + 850.5 + ], + "quality": { + "area_px": 1166.0, + "perimeter_px": 137.8082160949707, + "sharpness": { + "laplacian_var": 2107.9842668895926 + }, + "contrast": { + "p05": 7.0, + "p95": 161.0, + "dynamic_range": 154.0, + "mean_gray": 59.6401028277635, + "std_gray": 61.29568469686339 + }, + "geometry": { + "distance_to_center_norm": 0.3260713517665863, + "distance_to_border_px": 207.0 + }, + "edge_ratio": 1.0612402852147163, + "edge_lengths_px": [ + 34.20526123046875, + 33.42155075073242, + 35.46829605102539, + 34.71310806274414 + ] + }, + "confidence": 0.7324762772043267 + }, + { + "observation_id": "ee0e75f4-6f7c-4eda-a520-554c50fa061f", + "type": "aruco", + "marker_id": 144, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 968.0, + 585.0 + ], + [ + 939.0, + 564.0 + ], + [ + 946.0, + 533.0 + ], + [ + 976.0, + 555.0 + ] + ], + "center_px": [ + 957.25, + 559.25 + ], + "quality": { + "area_px": 1061.0, + "perimeter_px": 135.8360252380371, + "sharpness": { + "laplacian_var": 5288.562423574649 + }, + "contrast": { + "p05": 18.6, + "p95": 239.0, + "dynamic_range": 220.4, + "mean_gray": 111.4556616643929, + "std_gray": 87.711963565579 + }, + "geometry": { + "distance_to_center_norm": 0.017654340714216232, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.198200644945408, + "edge_lengths_px": [ + 35.80502700805664, + 31.78049659729004, + 37.202152252197266, + 31.048349380493164 + ] + }, + "confidence": 0.5903296216015312 + }, + { + "observation_id": "0120235d-1085-46ed-9f30-6f5ad12522a7", + "type": "aruco", + "marker_id": 93, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1867.0, + 971.0 + ], + [ + 1876.0, + 947.0 + ], + [ + 1912.0, + 969.0 + ], + [ + 1905.0, + 992.0 + ] + ], + "center_px": [ + 1890.0, + 969.75 + ], + "quality": { + "area_px": 1041.5, + "perimeter_px": 135.2802734375, + "sharpness": { + "laplacian_var": 746.3198492362626 + }, + "contrast": { + "p05": 8.0, + "p95": 118.0, + "dynamic_range": 110.0, + "mean_gray": 44.49295774647887, + "std_gray": 41.72994103249703 + }, + "geometry": { + "distance_to_center_norm": 0.930127739906311, + "distance_to_border_px": 8.0 + }, + "edge_ratio": 1.8058920383747763, + "edge_lengths_px": [ + 25.63201141357422, + 42.19004440307617, + 24.041629791259766, + 43.416587829589844 + ] + }, + "confidence": 0.0615171510658591 + }, + { + "observation_id": "17ed48d1-b7c9-4055-b7fc-808c9bc5c5ce", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 523.0, + 804.0 + ], + [ + 553.0, + 783.0 + ], + [ + 577.0, + 803.0 + ], + [ + 544.0, + 823.0 + ] + ], + "center_px": [ + 549.25, + 803.25 + ], + "quality": { + "area_px": 1075.5, + "perimeter_px": 134.7678337097168, + "sharpness": { + "laplacian_var": 1370.2102854668694 + }, + "contrast": { + "p05": 7.0, + "p95": 156.0, + "dynamic_range": 149.0, + "mean_gray": 53.33196721311475, + "std_gray": 58.2690707538106 + }, + "geometry": { + "distance_to_center_norm": 0.4429319202899933, + "distance_to_border_px": 257.0 + }, + "edge_ratio": 1.3625741860872198, + "edge_lengths_px": [ + 36.619667053222656, + 31.240999221801758, + 38.587562561035156, + 28.319604873657227 + ] + }, + "confidence": 0.526209880769093 + }, + { + "observation_id": "5ee18f75-c683-4358-9a94-173613f737ff", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 715.0, + 777.0 + ], + [ + 741.0, + 755.0 + ], + [ + 766.0, + 776.0 + ], + [ + 740.0, + 796.0 + ] + ], + "center_px": [ + 740.5, + 776.0 + ], + "quality": { + "area_px": 1045.0, + "perimeter_px": 130.9115047454834, + "sharpness": { + "laplacian_var": 2363.04210614142 + }, + "contrast": { + "p05": 7.0, + "p95": 165.0, + "dynamic_range": 158.0, + "mean_gray": 67.07703281027104, + "std_gray": 64.26019061074966 + }, + "geometry": { + "distance_to_center_norm": 0.29261186718940735, + "distance_to_border_px": 284.0 + }, + "edge_ratio": 1.0846523080242414, + "edge_lengths_px": [ + 34.058773040771484, + 32.649654388427734, + 32.80244064331055, + 31.400636672973633 + ] + }, + "confidence": 0.6422949193144543 + }, + { + "observation_id": "59e8cf10-cfb6-43a5-8bdf-27df34cc5b16", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1148.0, + 783.0 + ], + [ + 1177.0, + 803.0 + ], + [ + 1158.0, + 824.0 + ], + [ + 1127.0, + 805.0 + ] + ], + "center_px": [ + 1152.5, + 803.75 + ], + "quality": { + "area_px": 1035.0, + "perimeter_px": 130.32056427001953, + "sharpness": { + "laplacian_var": 1735.2833863410967 + }, + "contrast": { + "p05": 5.0, + "p95": 145.85000000000002, + "dynamic_range": 140.85000000000002, + "mean_gray": 58.63742690058479, + "std_gray": 55.58566543243226 + }, + "geometry": { + "distance_to_center_norm": 0.2964515686035156, + "distance_to_border_px": 256.0 + }, + "edge_ratio": 1.2838921285007863, + "edge_lengths_px": [ + 35.22782897949219, + 28.319604873657227, + 36.359317779541016, + 30.4138126373291 + ] + }, + "confidence": 0.5374283280369667 + }, + { + "observation_id": "54d2fc89-f4f7-43ff-9ab3-834281f5a6f5", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 936.0, + 802.0 + ], + [ + 959.0, + 781.0 + ], + [ + 986.0, + 801.0 + ], + [ + 965.0, + 822.0 + ] + ], + "center_px": [ + 961.5, + 801.5 + ], + "quality": { + "area_px": 1028.0, + "perimeter_px": 129.6717300415039, + "sharpness": { + "laplacian_var": 985.4981639249527 + }, + "contrast": { + "p05": 6.0, + "p95": 144.0, + "dynamic_range": 138.0, + "mean_gray": 29.809104258443465, + "std_gray": 41.09534030689129 + }, + "geometry": { + "distance_to_center_norm": 0.23741744458675385, + "distance_to_border_px": 258.0 + }, + "edge_ratio": 1.1861827182954703, + "edge_lengths_px": [ + 31.14482307434082, + 33.60059356689453, + 29.698484420776367, + 35.22782897949219 + ] + }, + "confidence": 0.5777637144454008 + }, + { + "observation_id": "78a1dadd-b77f-41a4-a33d-301809bbbe26", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 886.0, + 783.0 + ], + [ + 909.0, + 763.0 + ], + [ + 937.0, + 782.0 + ], + [ + 914.0, + 802.0 + ] + ], + "center_px": [ + 911.5, + 782.5 + ], + "quality": { + "area_px": 997.0, + "perimeter_px": 128.63470077514648, + "sharpness": { + "laplacian_var": 1892.9543407056651 + }, + "contrast": { + "p05": 7.0, + "p95": 156.0, + "dynamic_range": 149.0, + "mean_gray": 68.19676945668135, + "std_gray": 62.201883820323886 + }, + "geometry": { + "distance_to_center_norm": 0.22452370822429657, + "distance_to_border_px": 278.0 + }, + "edge_ratio": 1.1101837874342844, + "edge_lengths_px": [ + 30.479501724243164, + 33.83784866333008, + 30.479501724243164, + 33.83784866333008 + ] + }, + "confidence": 0.5986996695409863 + }, + { + "observation_id": "ac769645-daad-478d-b63d-e9aff700c9a0", + "type": "aruco", + "marker_id": 94, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1791.0, + 890.0 + ], + [ + 1801.0, + 869.0 + ], + [ + 1835.0, + 889.0 + ], + [ + 1828.0, + 910.0 + ] + ], + "center_px": [ + 1813.75, + 889.5 + ], + "quality": { + "area_px": 915.5, + "perimeter_px": 126.9010009765625, + "sharpness": { + "laplacian_var": 1106.6585568395592 + }, + "contrast": { + "p05": 7.0, + "p95": 128.0, + "dynamic_range": 121.0, + "mean_gray": 47.48196721311476, + "std_gray": 45.606914590061386 + }, + "geometry": { + "distance_to_center_norm": 0.8375458717346191, + "distance_to_border_px": 85.0 + }, + "edge_ratio": 1.9000536809353408, + "edge_lengths_px": [ + 23.25940704345703, + 39.4461669921875, + 22.135944366455078, + 42.05948257446289 + ] + }, + "confidence": 0.321218994735393 + }, + { + "observation_id": "1a123cfb-ecb5-4f08-9aaa-0265e21ad93c", + "type": "aruco", + "marker_id": 157, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1066.0, + 484.0 + ], + [ + 1042.0, + 497.0 + ], + [ + 1052.0, + 463.0 + ], + [ + 1076.0, + 450.0 + ] + ], + "center_px": [ + 1059.0, + 473.5 + ], + "quality": { + "area_px": 686.0, + "perimeter_px": 125.46955490112305, + "sharpness": { + "laplacian_var": 2323.8292875610455 + }, + "contrast": { + "p05": 9.0, + "p95": 155.0, + "dynamic_range": 146.0, + "mean_gray": 57.82627118644068, + "std_gray": 53.441710568326975 + }, + "geometry": { + "distance_to_center_norm": 0.10827624797821045, + "distance_to_border_px": 450.0 + }, + "edge_ratio": 1.2984244819300144, + "edge_lengths_px": [ + 27.294687271118164, + 35.44009017944336, + 27.294687271118164, + 35.44009017944336 + ] + }, + "confidence": 0.3522217423484963 + }, + { + "observation_id": "9236f4f9-9226-48aa-ac5e-04d91bed85e3", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 606.0, + 708.0 + ], + [ + 634.0, + 691.0 + ], + [ + 656.0, + 708.0 + ], + [ + 629.0, + 728.0 + ] + ], + "center_px": [ + 631.25, + 708.75 + ], + "quality": { + "area_px": 925.0, + "perimeter_px": 124.63965225219727, + "sharpness": { + "laplacian_var": 1763.9668711865481 + }, + "contrast": { + "p05": 6.0, + "p95": 158.0, + "dynamic_range": 152.0, + "mean_gray": 63.00624024960999, + "std_gray": 61.53719845859582 + }, + "geometry": { + "distance_to_center_norm": 0.33549389243125916, + "distance_to_border_px": 352.0 + }, + "edge_ratio": 1.2085293565799977, + "edge_lengths_px": [ + 32.75667953491211, + 27.80287742614746, + 33.60059356689453, + 30.479501724243164 + ] + }, + "confidence": 0.5102620497459525 + }, + { + "observation_id": "0d299030-53bb-4668-849a-7f7df916ede4", + "type": "aruco", + "marker_id": 229, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 853.0, + 550.0 + ], + [ + 881.0, + 566.0 + ], + [ + 859.0, + 585.0 + ], + [ + 830.0, + 567.0 + ] + ], + "center_px": [ + 855.75, + 567.0 + ], + "quality": { + "area_px": 895.5, + "perimeter_px": 124.05070877075195, + "sharpness": { + "laplacian_var": 1460.055641748169 + }, + "contrast": { + "p05": 8.0, + "p95": 153.0, + "dynamic_range": 145.0, + "mean_gray": 51.89900662251656, + "std_gray": 54.31431152191192 + }, + "geometry": { + "distance_to_center_norm": 0.09777048975229263, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.1934007615737057, + "edge_lengths_px": [ + 32.24903106689453, + 29.068883895874023, + 34.13209533691406, + 28.600698471069336 + ] + }, + "confidence": 0.500251063366804 + }, + { + "observation_id": "d192322b-e3f2-49c7-9c2f-da546d007891", + "type": "aruco", + "marker_id": 122, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 933.0, + 716.0 + ], + [ + 905.0, + 699.0 + ], + [ + 909.0, + 671.0 + ], + [ + 938.0, + 689.0 + ] + ], + "center_px": [ + 921.25, + 693.75 + ], + "quality": { + "area_px": 862.5, + "perimeter_px": 122.63210678100586, + "sharpness": { + "laplacian_var": 3063.3507181844293 + }, + "contrast": { + "p05": 19.450000000000003, + "p95": 208.0, + "dynamic_range": 188.55, + "mean_gray": 81.16271186440677, + "std_gray": 71.99006969727611 + }, + "geometry": { + "distance_to_center_norm": 0.1439533680677414, + "distance_to_border_px": 364.0 + }, + "edge_ratio": 1.24301758710616, + "edge_lengths_px": [ + 32.75667953491211, + 28.284271240234375, + 34.13209533691406, + 27.459060668945312 + ] + }, + "confidence": 0.462583961775347 + }, + { + "observation_id": "1765df6c-8eeb-43e1-be1b-09a5c920048e", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1250.0, + 729.0 + ], + [ + 1280.0, + 747.0 + ], + [ + 1264.0, + 765.0 + ], + [ + 1233.0, + 746.0 + ] + ], + "center_px": [ + 1256.75, + 746.75 + ], + "quality": { + "area_px": 839.0, + "perimeter_px": 119.46984672546387, + "sharpness": { + "laplacian_var": 1590.0423666910153 + }, + "contrast": { + "p05": 7.550000000000001, + "p95": 148.0, + "dynamic_range": 140.45, + "mean_gray": 74.86824324324324, + "std_gray": 57.19761445739244 + }, + "geometry": { + "distance_to_center_norm": 0.32835817337036133, + "distance_to_border_px": 315.0 + }, + "edge_ratio": 1.5123482931577, + "edge_lengths_px": [ + 34.98571014404297, + 24.083189010620117, + 36.359317779541016, + 24.041629791259766 + ] + }, + "confidence": 0.3698442586697249 + }, + { + "observation_id": "0a3b87eb-ead3-480d-8339-18334b19d907", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 852.0, + 715.0 + ], + [ + 873.0, + 696.0 + ], + [ + 900.0, + 714.0 + ], + [ + 877.0, + 733.0 + ] + ], + "center_px": [ + 875.5, + 714.5 + ], + "quality": { + "area_px": 890.0, + "perimeter_px": 121.40827941894531, + "sharpness": { + "laplacian_var": 2249.1852760293614 + }, + "contrast": { + "p05": 5.0, + "p95": 143.0, + "dynamic_range": 138.0, + "mean_gray": 64.6645264847512, + "std_gray": 54.51053009196851 + }, + "geometry": { + "distance_to_center_norm": 0.17602437734603882, + "distance_to_border_px": 347.0 + }, + "edge_ratio": 1.1458480003777034, + "edge_lengths_px": [ + 28.319604873657227, + 32.4499626159668, + 29.832868576049805, + 30.805843353271484 + ] + }, + "confidence": 0.5178115536596077 + }, + { + "observation_id": "a1ff6aaf-6aba-4841-baf7-11a994098c0a", + "type": "aruco", + "marker_id": 100, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1689.0, + 833.0 + ], + [ + 1698.0, + 813.0 + ], + [ + 1732.0, + 832.0 + ], + [ + 1722.0, + 852.0 + ] + ], + "center_px": [ + 1710.25, + 832.5 + ], + "quality": { + "area_px": 850.5, + "perimeter_px": 121.31994247436523, + "sharpness": { + "laplacian_var": 1208.7910427319212 + }, + "contrast": { + "p05": 7.0, + "p95": 131.44999999999993, + "dynamic_range": 124.44999999999993, + "mean_gray": 63.04391891891892, + "std_gray": 50.184437835431524 + }, + "geometry": { + "distance_to_center_norm": 0.731081485748291, + "distance_to_border_px": 188.0 + }, + "edge_ratio": 1.775907085198861, + "edge_lengths_px": [ + 21.931713104248047, + 38.94868469238281, + 22.360679626464844, + 38.07886505126953 + ] + }, + "confidence": 0.31927346015206026 + }, + { + "observation_id": "75f57534-1e8d-4b67-9b32-103e47dcdb49", + "type": "aruco", + "marker_id": 118, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 889.0, + 687.0 + ], + [ + 863.0, + 668.0 + ], + [ + 867.0, + 641.0 + ], + [ + 895.0, + 660.0 + ] + ], + "center_px": [ + 878.5, + 664.0 + ], + "quality": { + "area_px": 824.0, + "perimeter_px": 120.99365425109863, + "sharpness": { + "laplacian_var": 2150.5108183882844 + }, + "contrast": { + "p05": 18.0, + "p95": 202.0, + "dynamic_range": 184.0, + "mean_gray": 55.96283185840708, + "std_gray": 55.95529535894026 + }, + "geometry": { + "distance_to_center_norm": 0.13471786677837372, + "distance_to_border_px": 393.0 + }, + "edge_ratio": 1.2397228928552535, + "edge_lengths_px": [ + 32.202484130859375, + 27.294687271118164, + 33.83784866333008, + 27.658634185791016 + ] + }, + "confidence": 0.44310977598239115 + }, + { + "observation_id": "35ac3361-1082-4b74-989b-11edc0bb3617", + "type": "aruco", + "marker_id": 104, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1749.0, + 796.0 + ], + [ + 1757.0, + 777.0 + ], + [ + 1791.0, + 795.0 + ], + [ + 1782.0, + 814.0 + ] + ], + "center_px": [ + 1769.75, + 795.5 + ], + "quality": { + "area_px": 789.5, + "perimeter_px": 117.69998550415039, + "sharpness": { + "laplacian_var": 1146.9789748551334 + }, + "contrast": { + "p05": 8.0, + "p95": 135.0, + "dynamic_range": 127.0, + "mean_gray": 72.43016759776536, + "std_gray": 51.98169050390882 + }, + "geometry": { + "distance_to_center_norm": 0.7708927989006042, + "distance_to_border_px": 129.0 + }, + "edge_ratio": 1.86610635321878, + "edge_lengths_px": [ + 20.615528106689453, + 38.470767974853516, + 21.02379608154297, + 37.58989334106445 + ] + }, + "confidence": 0.2820489477598529 + }, + { + "observation_id": "b9b3b1a3-d507-4733-ac47-cb620db82794", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1528.0, + 746.0 + ], + [ + 1541.0, + 728.0 + ], + [ + 1571.0, + 745.0 + ], + [ + 1560.0, + 763.0 + ] + ], + "center_px": [ + 1550.0, + 745.5 + ], + "quality": { + "area_px": 762.0, + "perimeter_px": 114.0158462524414, + "sharpness": { + "laplacian_var": 1180.489754535353 + }, + "contrast": { + "p05": 6.0, + "p95": 132.0, + "dynamic_range": 126.0, + "mean_gray": 59.59187620889749, + "std_gray": 48.9105464982987 + }, + "geometry": { + "distance_to_center_norm": 0.5672178864479065, + "distance_to_border_px": 317.0 + }, + "edge_ratio": 1.7177199327984685, + "edge_lengths_px": [ + 22.203603744506836, + 34.48188018798828, + 21.095022201538086, + 36.2353401184082 + ] + }, + "confidence": 0.2957408773689774 + }, + { + "observation_id": "48f68d8e-6b66-4e51-8134-4bf458d55b57", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 442.0, + 588.0 + ], + [ + 469.0, + 572.0 + ], + [ + 489.0, + 587.0 + ], + [ + 462.0, + 603.0 + ] + ], + "center_px": [ + 465.5, + 587.5 + ], + "quality": { + "area_px": 725.0, + "perimeter_px": 112.7694206237793, + "sharpness": { + "laplacian_var": 1176.1399285787163 + }, + "contrast": { + "p05": 6.0, + "p95": 151.0, + "dynamic_range": 145.0, + "mean_gray": 56.266666666666666, + "std_gray": 54.161837546972556 + }, + "geometry": { + "distance_to_center_norm": 0.45101863145828247, + "distance_to_border_px": 442.0 + }, + "edge_ratio": 1.2553884124755859, + "edge_lengths_px": [ + 31.38471031188965, + 25.0, + 31.38471031188965, + 25.0 + ] + }, + "confidence": 0.3850070054256877 + }, + { + "observation_id": "d0325dd1-9cf7-4614-abc6-7bb32454d2b2", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 626.0, + 589.0 + ], + [ + 651.0, + 574.0 + ], + [ + 672.0, + 589.0 + ], + [ + 647.0, + 606.0 + ] + ], + "center_px": [ + 649.0, + 589.5 + ], + "quality": { + "area_px": 736.0, + "perimeter_px": 112.21268272399902, + "sharpness": { + "laplacian_var": 1948.4989382512422 + }, + "contrast": { + "p05": 6.0, + "p95": 157.0, + "dynamic_range": 151.0, + "mean_gray": 87.187624750499, + "std_gray": 61.41759101084766 + }, + "geometry": { + "distance_to_center_norm": 0.2859082520008087, + "distance_to_border_px": 474.0 + }, + "edge_ratio": 1.1714829721289006, + "edge_lengths_px": [ + 29.154760360717773, + 25.806976318359375, + 30.232433319091797, + 27.018512725830078 + ] + }, + "confidence": 0.4188423377379467 + }, + { + "observation_id": "fd807187-bb64-4004-88dd-6733d7a76644", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 698.0, + 621.0 + ], + [ + 722.0, + 605.0 + ], + [ + 744.0, + 621.0 + ], + [ + 719.0, + 637.0 + ] + ], + "center_px": [ + 720.75, + 621.0 + ], + "quality": { + "area_px": 736.0, + "perimeter_px": 112.12975311279297, + "sharpness": { + "laplacian_var": 2135.7574272612464 + }, + "contrast": { + "p05": 6.0, + "p95": 156.0, + "dynamic_range": 150.0, + "mean_gray": 57.59281437125748, + "std_gray": 58.18332467059634 + }, + "geometry": { + "distance_to_center_norm": 0.22932396829128265, + "distance_to_border_px": 443.0 + }, + "edge_ratio": 1.124272482949948, + "edge_lengths_px": [ + 28.844409942626953, + 27.20294189453125, + 29.681644439697266, + 26.4007568359375 + ] + }, + "confidence": 0.43643037974141263 + }, + { + "observation_id": "8fd98787-d335-4ec7-abb9-8edd65b00f9c", + "type": "aruco", + "marker_id": 243, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 807.0, + 608.0 + ], + [ + 833.0, + 627.0 + ], + [ + 832.0, + 650.0 + ], + [ + 806.0, + 631.0 + ] + ], + "center_px": [ + 819.5, + 629.0 + ], + "quality": { + "area_px": 617.0, + "perimeter_px": 110.44842529296875, + "sharpness": { + "laplacian_var": 3320.940416020727 + }, + "contrast": { + "p05": 19.0, + "p95": 205.34999999999997, + "dynamic_range": 186.34999999999997, + "mean_gray": 88.59216589861751, + "std_gray": 71.64944121977587 + }, + "geometry": { + "distance_to_center_norm": 0.15099747478961945, + "distance_to_border_px": 430.0 + }, + "edge_ratio": 1.398786546761827, + "edge_lengths_px": [ + 32.202484130859375, + 23.021728515625, + 32.202484130859375, + 23.021728515625 + ] + }, + "confidence": 0.2940644048125604 + }, + { + "observation_id": "bf4d8068-dcdd-4968-99dd-68b63250b657", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 547.0, + 574.0 + ], + [ + 572.0, + 558.0 + ], + [ + 592.0, + 574.0 + ], + [ + 566.0, + 589.0 + ] + ], + "center_px": [ + 569.25, + 573.75 + ], + "quality": { + "area_px": 697.5, + "perimeter_px": 109.51824188232422, + "sharpness": { + "laplacian_var": 1562.2307688840203 + }, + "contrast": { + "p05": 6.0, + "p95": 153.0, + "dynamic_range": 147.0, + "mean_gray": 57.94692144373673, + "std_gray": 56.06240216385991 + }, + "geometry": { + "distance_to_center_norm": 0.3560793101787567, + "distance_to_border_px": 491.0 + }, + "edge_ratio": 1.2399768698663667, + "edge_lengths_px": [ + 29.681644439697266, + 25.612497329711914, + 30.01666259765625, + 24.20743751525879 + ] + }, + "confidence": 0.37500699513057323 + }, + { + "observation_id": "a67f4dae-f361-4008-9c24-f70cfd17edd2", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1394.0, + 663.0 + ], + [ + 1407.0, + 648.0 + ], + [ + 1437.0, + 663.0 + ], + [ + 1424.0, + 679.0 + ] + ], + "center_px": [ + 1415.5, + 663.25 + ], + "quality": { + "area_px": 666.5, + "perimeter_px": 108.0059814453125, + "sharpness": { + "laplacian_var": 1019.7448563378026 + }, + "contrast": { + "p05": 6.0, + "p95": 130.0, + "dynamic_range": 124.0, + "mean_gray": 48.774049217002236, + "std_gray": 45.00360857942213 + }, + "geometry": { + "distance_to_center_norm": 0.42841577529907227, + "distance_to_border_px": 401.0 + }, + "edge_ratio": 1.7128951975723612, + "edge_lengths_px": [ + 19.84943389892578, + 33.541019439697266, + 20.615528106689453, + 34.0 + ] + }, + "confidence": 0.25940485673792224 + }, + { + "observation_id": "74b0436c-7495-4d71-afcb-57ada3d6d734", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1417.0, + 636.0 + ], + [ + 1431.0, + 619.0 + ], + [ + 1458.0, + 635.0 + ], + [ + 1446.0, + 651.0 + ] + ], + "center_px": [ + 1438.0, + 635.25 + ], + "quality": { + "area_px": 663.5, + "perimeter_px": 106.05707931518555, + "sharpness": { + "laplacian_var": 1193.502439506173 + }, + "contrast": { + "p05": 5.0, + "p95": 136.0, + "dynamic_range": 131.0, + "mean_gray": 43.1, + "std_gray": 44.33575181373255 + }, + "geometry": { + "distance_to_center_norm": 0.4425041079521179, + "distance_to_border_px": 429.0 + }, + "edge_ratio": 1.6324827194213867, + "edge_lengths_px": [ + 22.022714614868164, + 31.38471031188965, + 20.0, + 32.649654388427734 + ] + }, + "confidence": 0.270957436835909 + }, + { + "observation_id": "88ec366d-7993-4a97-bb5d-b139829be292", + "type": "aruco", + "marker_id": 88, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1701.0, + 694.0 + ], + [ + 1709.0, + 678.0 + ], + [ + 1740.0, + 694.0 + ], + [ + 1732.0, + 710.0 + ] + ], + "center_px": [ + 1720.5, + 694.0 + ], + "quality": { + "area_px": 624.0, + "perimeter_px": 105.54814529418945, + "sharpness": { + "laplacian_var": 1393.1621774482282 + }, + "contrast": { + "p05": 8.0, + "p95": 141.0, + "dynamic_range": 133.0, + "mean_gray": 64.49886104783599, + "std_gray": 51.8493030473238 + }, + "geometry": { + "distance_to_center_norm": 0.7044652104377747, + "distance_to_border_px": 180.0 + }, + "edge_ratio": 1.9501603038955408, + "edge_lengths_px": [ + 17.8885440826416, + 34.885528564453125, + 17.8885440826416, + 34.885528564453125 + ] + }, + "confidence": 0.21331579725472802 + }, + { + "observation_id": "78f778ea-96dd-4674-a289-973c5b113dca", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1360.0, + 628.0 + ], + [ + 1373.0, + 614.0 + ], + [ + 1401.0, + 628.0 + ], + [ + 1389.0, + 644.0 + ] + ], + "center_px": [ + 1380.75, + 628.5 + ], + "quality": { + "area_px": 615.0, + "perimeter_px": 103.53091621398926, + "sharpness": { + "laplacian_var": 1509.4404662968038 + }, + "contrast": { + "p05": 7.0, + "p95": 133.0, + "dynamic_range": 126.0, + "mean_gray": 66.55687203791469, + "std_gray": 49.01861855074494 + }, + "geometry": { + "distance_to_center_norm": 0.3903539478778839, + "distance_to_border_px": 436.0 + }, + "edge_ratio": 1.733631920425761, + "edge_lengths_px": [ + 19.10497283935547, + 31.30495262145996, + 20.0, + 33.12099075317383 + ] + }, + "confidence": 0.23649772201893263 + }, + { + "observation_id": "a174c6c4-f99b-49aa-a37b-9a4f76d7b12c", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1653.0, + 658.0 + ], + [ + 1663.0, + 642.0 + ], + [ + 1692.0, + 657.0 + ], + [ + 1683.0, + 673.0 + ] + ], + "center_px": [ + 1672.75, + 657.5 + ], + "quality": { + "area_px": 614.5, + "perimeter_px": 103.41619491577148, + "sharpness": { + "laplacian_var": 1110.2442775655747 + }, + "contrast": { + "p05": 7.0, + "p95": 135.0, + "dynamic_range": 128.0, + "mean_gray": 56.541567695961994, + "std_gray": 50.87314862232315 + }, + "geometry": { + "distance_to_center_norm": 0.6558336019515991, + "distance_to_border_px": 228.0 + }, + "edge_ratio": 1.8270958065167682, + "edge_lengths_px": [ + 18.867961883544922, + 32.649654388427734, + 18.357559204101562, + 33.541019439697266 + ] + }, + "confidence": 0.22421739747061642 + }, + { + "observation_id": "78f5d34c-aea5-473f-b9a6-3a2844d0e7c9", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 520.0, + 511.0 + ], + [ + 545.0, + 497.0 + ], + [ + 563.0, + 511.0 + ], + [ + 539.0, + 525.0 + ] + ], + "center_px": [ + 541.75, + 511.0 + ], + "quality": { + "area_px": 602.0, + "perimeter_px": 102.84234046936035, + "sharpness": { + "laplacian_var": 1582.0495272102096 + }, + "contrast": { + "p05": 5.0, + "p95": 150.75, + "dynamic_range": 145.75, + "mean_gray": 55.22769953051643, + "std_gray": 54.78534538009923 + }, + "geometry": { + "distance_to_center_norm": 0.38063716888427734, + "distance_to_border_px": 497.0 + }, + "edge_ratio": 1.2565214176512676, + "edge_lengths_px": [ + 28.65309715270996, + 22.803508758544922, + 27.784887313842773, + 23.600847244262695 + ] + }, + "confidence": 0.3194003123985894 + }, + { + "observation_id": "78c9b73d-9ed9-4111-b212-ff6be86f594f", + "type": "aruco", + "marker_id": 56, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1308.0, + 615.0 + ], + [ + 1321.0, + 600.0 + ], + [ + 1349.0, + 615.0 + ], + [ + 1336.0, + 629.0 + ] + ], + "center_px": [ + 1328.5, + 614.75 + ], + "quality": { + "area_px": 594.5, + "perimeter_px": 102.02412033081055, + "sharpness": { + "laplacian_var": 930.7487883728935 + }, + "contrast": { + "p05": 5.0, + "p95": 120.0, + "dynamic_range": 115.0, + "mean_gray": 34.7624703087886, + "std_gray": 38.02606453994926 + }, + "geometry": { + "distance_to_center_norm": 0.34137168526649475, + "distance_to_border_px": 451.0 + }, + "edge_ratio": 1.6626436079320257, + "edge_lengths_px": [ + 19.84943389892578, + 31.764760971069336, + 19.10497283935547, + 31.30495262145996 + ] + }, + "confidence": 0.2383753989384938 + }, + { + "observation_id": "9443ff12-c7a5-4f86-94e4-863fa6e26bb3", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1552.0, + 614.0 + ], + [ + 1562.0, + 599.0 + ], + [ + 1591.0, + 614.0 + ], + [ + 1580.0, + 629.0 + ] + ], + "center_px": [ + 1571.25, + 614.0 + ], + "quality": { + "area_px": 585.0, + "perimeter_px": 101.04324722290039, + "sharpness": { + "laplacian_var": 1165.5467071359944 + }, + "contrast": { + "p05": 6.0, + "p95": 139.0, + "dynamic_range": 133.0, + "mean_gray": 59.56308411214953, + "std_gray": 51.77528947127236 + }, + "geometry": { + "distance_to_center_norm": 0.5590004324913025, + "distance_to_border_px": 329.0 + }, + "edge_ratio": 1.811077033890917, + "edge_lengths_px": [ + 18.027755737304688, + 32.649654388427734, + 18.601076126098633, + 31.764760971069336 + ] + }, + "confidence": 0.21534147510121324 + }, + { + "observation_id": "9243bfd9-adbf-42a9-bfe7-cccbce9af069", + "type": "aruco", + "marker_id": 200, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 886.0, + 400.0 + ], + [ + 911.0, + 412.0 + ], + [ + 895.0, + 425.0 + ], + [ + 868.0, + 413.0 + ] + ], + "center_px": [ + 890.0, + 412.5 + ], + "quality": { + "area_px": 542.0, + "perimeter_px": 100.09655380249023, + "sharpness": { + "laplacian_var": 3015.234932247642 + }, + "contrast": { + "p05": 5.0, + "p95": 156.0, + "dynamic_range": 151.0, + "mean_gray": 54.54330708661417, + "std_gray": 54.39971957028497 + }, + "geometry": { + "distance_to_center_norm": 0.13205447793006897, + "distance_to_border_px": 400.0 + }, + "edge_ratio": 1.433219342526984, + "edge_lengths_px": [ + 27.73084831237793, + 20.615528106689453, + 29.546573638916016, + 22.203603744506836 + ] + }, + "confidence": 0.25211307342269584 + }, + { + "observation_id": "49c9843b-1c49-49b8-9335-8b4d5390401a", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1320.0, + 579.0 + ], + [ + 1333.0, + 566.0 + ], + [ + 1360.0, + 580.0 + ], + [ + 1348.0, + 594.0 + ] + ], + "center_px": [ + 1340.25, + 579.75 + ], + "quality": { + "area_px": 552.5, + "perimeter_px": 99.00243949890137, + "sharpness": { + "laplacian_var": 1492.0777494156537 + }, + "contrast": { + "p05": 6.0, + "p95": 136.0, + "dynamic_range": 130.0, + "mean_gray": 69.47677261613691, + "std_gray": 50.0039614406213 + }, + "geometry": { + "distance_to_center_norm": 0.34710678458213806, + "distance_to_border_px": 486.0 + }, + "edge_ratio": 1.7277751506963748, + "edge_lengths_px": [ + 18.384777069091797, + 30.4138126373291, + 18.439088821411133, + 31.764760971069336 + ] + }, + "confidence": 0.2131836038878541 + }, + { + "observation_id": "04f37d4b-6062-49f9-b3fd-5de080422446", + "type": "aruco", + "marker_id": 72, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1262.0, + 563.0 + ], + [ + 1276.0, + 549.0 + ], + [ + 1302.0, + 563.0 + ], + [ + 1288.0, + 576.0 + ] + ], + "center_px": [ + 1282.0, + 562.75 + ], + "quality": { + "area_px": 540.0, + "perimeter_px": 97.50249290466309, + "sharpness": { + "laplacian_var": 1364.7048743464327 + }, + "contrast": { + "p05": 5.0, + "p95": 129.79999999999995, + "dynamic_range": 124.79999999999995, + "mean_gray": 40.054545454545455, + "std_gray": 43.601079890875766 + }, + "geometry": { + "distance_to_center_norm": 0.2930696904659271, + "distance_to_border_px": 504.0 + }, + "edge_ratio": 1.545652337121879, + "edge_lengths_px": [ + 19.79899024963379, + 29.529645919799805, + 19.10497283935547, + 29.068883895874023 + ] + }, + "confidence": 0.2329113678114362 + }, + { + "observation_id": "096b8a20-39d1-447c-a856-93c84a9b3a04", + "type": "aruco", + "marker_id": 98, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1474.0, + 574.0 + ], + [ + 1485.0, + 560.0 + ], + [ + 1513.0, + 574.0 + ], + [ + 1501.0, + 587.0 + ] + ], + "center_px": [ + 1493.25, + 573.75 + ], + "quality": { + "area_px": 526.5, + "perimeter_px": 96.76790046691895, + "sharpness": { + "laplacian_var": 1121.8701717403435 + }, + "contrast": { + "p05": 7.0, + "p95": 135.0, + "dynamic_range": 128.0, + "mean_gray": 56.249343832021, + "std_gray": 48.32108575938426 + }, + "geometry": { + "distance_to_center_norm": 0.4851016402244568, + "distance_to_border_px": 407.0 + }, + "edge_ratio": 1.76946046197325, + "edge_lengths_px": [ + 17.804492950439453, + 31.30495262145996, + 17.69180679321289, + 29.96664810180664 + ] + }, + "confidence": 0.19836555127576866 + }, + { + "observation_id": "b59816d1-0182-4095-acf2-e2471ca92990", + "type": "aruco", + "marker_id": 67, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1392.0, + 570.0 + ], + [ + 1404.0, + 556.0 + ], + [ + 1430.0, + 570.0 + ], + [ + 1418.0, + 584.0 + ] + ], + "center_px": [ + 1411.0, + 570.0 + ], + "quality": { + "area_px": 532.0, + "perimeter_px": 95.93746948242188, + "sharpness": { + "laplacian_var": 1377.648824903029 + }, + "contrast": { + "p05": 5.0, + "p95": 125.5, + "dynamic_range": 120.5, + "mean_gray": 41.767263427109974, + "std_gray": 40.47549291586538 + }, + "geometry": { + "distance_to_center_norm": 0.4103637933731079, + "distance_to_border_px": 490.0 + }, + "edge_ratio": 1.6014699102436407, + "edge_lengths_px": [ + 18.439088821411133, + 29.529645919799805, + 18.439088821411133, + 29.529645919799805 + ] + }, + "confidence": 0.22146320976627604 + }, + { + "observation_id": "5b9a06d9-cc3a-403e-85ff-82569af29fdf", + "type": "aruco", + "marker_id": 70, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1497.0, + 598.0 + ], + [ + 1507.0, + 585.0 + ], + [ + 1535.0, + 598.0 + ], + [ + 1525.0, + 612.0 + ] + ], + "center_px": [ + 1516.0, + 598.25 + ], + "quality": { + "area_px": 513.0, + "perimeter_px": 95.78152275085449, + "sharpness": { + "laplacian_var": 1241.123748019466 + }, + "contrast": { + "p05": 8.0, + "p95": 137.0, + "dynamic_range": 129.0, + "mean_gray": 62.43617021276596, + "std_gray": 49.02052512167806 + }, + "geometry": { + "distance_to_center_norm": 0.5075501799583435, + "distance_to_border_px": 385.0 + }, + "edge_ratio": 1.90869654864197, + "edge_lengths_px": [ + 16.401220321655273, + 30.870698928833008, + 17.20465087890625, + 31.30495262145996 + ] + }, + "confidence": 0.17917987028547397 + }, + { + "observation_id": "4b28eef2-8c27-4c13-be45-49bb231ebdcf", + "type": "aruco", + "marker_id": 60, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1307.0, + 509.0 + ], + [ + 1322.0, + 497.0 + ], + [ + 1345.0, + 510.0 + ], + [ + 1332.0, + 522.0 + ] + ], + "center_px": [ + 1326.5, + 509.5 + ], + "quality": { + "area_px": 470.0, + "perimeter_px": 91.49887466430664, + "sharpness": { + "laplacian_var": 1702.37180236678 + }, + "contrast": { + "p05": 7.0, + "p95": 137.0, + "dynamic_range": 130.0, + "mean_gray": 76.49702380952381, + "std_gray": 51.534084797386235 + }, + "geometry": { + "distance_to_center_norm": 0.3338923156261444, + "distance_to_border_px": 497.0 + }, + "edge_ratio": 1.5927149526251774, + "edge_lengths_px": [ + 19.209373474121094, + 26.419689178466797, + 17.69180679321289, + 28.17800521850586 + ] + }, + "confidence": 0.19672907121069258 + }, + { + "observation_id": "755f1e34-3964-4023-9ff7-43ed16192c57", + "type": "aruco", + "marker_id": 84, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1265.0, + 507.0 + ], + [ + 1280.0, + 495.0 + ], + [ + 1303.0, + 509.0 + ], + [ + 1290.0, + 521.0 + ] + ], + "center_px": [ + 1284.5, + 508.0 + ], + "quality": { + "area_px": 484.0, + "perimeter_px": 92.48010063171387, + "sharpness": { + "laplacian_var": 1626.3350255036157 + }, + "contrast": { + "p05": 5.550000000000001, + "p95": 134.0, + "dynamic_range": 128.45, + "mean_gray": 56.10795454545455, + "std_gray": 46.792029531046175 + }, + "geometry": { + "distance_to_center_norm": 0.2960397005081177, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.6195687352691501, + "edge_lengths_px": [ + 19.209373474121094, + 26.925823211669922, + 17.69180679321289, + 28.65309715270996 + ] + }, + "confidence": 0.1992299923059727 + }, + { + "observation_id": "7f1d3e38-8046-4bd5-adf0-8fdc9d35c449", + "type": "aruco", + "marker_id": 86, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1240.0, + 466.0 + ], + [ + 1255.0, + 455.0 + ], + [ + 1278.0, + 467.0 + ], + [ + 1263.0, + 478.0 + ] + ], + "center_px": [ + 1259.0, + 466.5 + ], + "quality": { + "area_px": 433.0, + "perimeter_px": 89.08663940429688, + "sharpness": { + "laplacian_var": 1974.719967742269 + }, + "contrast": { + "p05": 4.5, + "p95": 136.0, + "dynamic_range": 131.5, + "mean_gray": 58.31189710610933, + "std_gray": 51.5708467826551 + }, + "geometry": { + "distance_to_center_norm": 0.27954092621803284, + "distance_to_border_px": 455.0 + }, + "edge_ratio": 1.3946635882883676, + "edge_lengths_px": [ + 18.601076126098633, + 25.942243576049805, + 18.601076126098633, + 25.942243576049805 + ] + }, + "confidence": 0.20697942435059868 + }, + { + "observation_id": "dc9b52c8-e11d-40d1-9a03-6e51cb4a27aa", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 876.0, + 345.0 + ], + [ + 894.0, + 336.0 + ], + [ + 913.0, + 347.0 + ], + [ + 894.0, + 355.0 + ] + ], + "center_px": [ + 894.25, + 345.75 + ], + "quality": { + "area_px": 351.5, + "perimeter_px": 83.28589820861816, + "sharpness": { + "laplacian_var": 1526.1401941694694 + }, + "contrast": { + "p05": 4.0, + "p95": 134.5, + "dynamic_range": 130.5, + "mean_gray": 42.59040590405904, + "std_gray": 43.51466373090616 + }, + "geometry": { + "distance_to_center_norm": 0.18618659675121307, + "distance_to_border_px": 336.0 + }, + "edge_ratio": 1.0909278395070388, + "edge_lengths_px": [ + 20.124610900878906, + 21.954498291015625, + 20.615528106689453, + 20.59126091003418 + ] + }, + "confidence": 0.21480186392458583 + }, + { + "observation_id": "3d576a4a-977b-4e91-a5e0-4b57fb308417", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1112.0, + 393.0 + ], + [ + 1127.0, + 383.0 + ], + [ + 1147.0, + 395.0 + ], + [ + 1133.0, + 404.0 + ] + ], + "center_px": [ + 1129.75, + 393.75 + ], + "quality": { + "area_px": 361.5, + "perimeter_px": 81.70141792297363, + "sharpness": { + "laplacian_var": 1491.5946096093714 + }, + "contrast": { + "p05": 4.0, + "p95": 128.5, + "dynamic_range": 124.5, + "mean_gray": 56.28286852589641, + "std_gray": 46.6688305655202 + }, + "geometry": { + "distance_to_center_norm": 0.2034246176481247, + "distance_to_border_px": 383.0 + }, + "edge_ratio": 1.4243879507548283, + "edge_lengths_px": [ + 18.027755737304688, + 23.323806762695312, + 16.6433162689209, + 23.706539154052734 + ] + }, + "confidence": 0.16919547786983627 + }, + { + "observation_id": "aef189a0-17a5-4462-8f39-66ac7cf6ce59", + "type": "aruco", + "marker_id": 75, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 845.0, + 324.0 + ], + [ + 863.0, + 316.0 + ], + [ + 880.0, + 326.0 + ], + [ + 862.0, + 335.0 + ] + ], + "center_px": [ + 862.5, + 325.25 + ], + "quality": { + "area_px": 333.5, + "perimeter_px": 79.79386711120605, + "sharpness": { + "laplacian_var": 2291.8228093095277 + }, + "contrast": { + "p05": 6.0, + "p95": 142.2, + "dynamic_range": 136.2, + "mean_gray": 68.64658634538152, + "std_gray": 49.109127706465465 + }, + "geometry": { + "distance_to_center_norm": 0.2141234278678894, + "distance_to_border_px": 316.0 + }, + "edge_ratio": 1.027959647829689, + "edge_lengths_px": [ + 19.697715759277344, + 19.72308349609375, + 20.124610900878906, + 20.248456954956055 + ] + }, + "confidence": 0.21628605150283992 + }, + { + "observation_id": "320a95ac-fb0e-4212-8773-c4eb34e78437", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1137.0, + 378.0 + ], + [ + 1150.0, + 369.0 + ], + [ + 1171.0, + 380.0 + ], + [ + 1156.0, + 389.0 + ] + ], + "center_px": [ + 1153.5, + 379.0 + ], + "quality": { + "area_px": 334.0, + "perimeter_px": 78.96528053283691, + "sharpness": { + "laplacian_var": 2107.8226270208847 + }, + "contrast": { + "p05": 7.0, + "p95": 129.0, + "dynamic_range": 122.0, + "mean_gray": 61.0746887966805, + "std_gray": 41.541992732328836 + }, + "geometry": { + "distance_to_center_norm": 0.22853489220142365, + "distance_to_border_px": 369.0 + }, + "edge_ratio": 1.4993332103698063, + "edge_lengths_px": [ + 15.81138801574707, + 23.706539154052734, + 17.492855072021484, + 21.954498291015625 + ] + }, + "confidence": 0.1485104612681437 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 1426.0, + 840.0 + ], + [ + 1466.0, + 864.0 + ], + [ + 1449.0, + 892.0 + ], + [ + 1408.0, + 866.0 + ] + ], + "center_px": [ + 1437.25, + 865.5 + ], + "area_px": 1531.0 + }, + { + "image_points_px": [ + [ + 1103.0, + 261.0 + ], + [ + 1101.0, + 268.0 + ], + [ + 1078.0, + 288.0 + ], + [ + 1065.0, + 290.0 + ] + ], + "center_px": [ + 1086.75, + 276.75 + ], + "area_px": 211.0 + }, + { + "image_points_px": [ + [ + 937.0, + 618.0 + ], + [ + 940.0, + 623.0 + ], + [ + 929.0, + 656.0 + ], + [ + 927.0, + 650.0 + ] + ], + "center_px": [ + 933.25, + 636.75 + ], + "area_px": 139.0 + }, + { + "image_points_px": [ + [ + 1051.0, + 205.0 + ], + [ + 1065.0, + 234.0 + ], + [ + 1059.0, + 239.0 + ], + [ + 1045.0, + 210.0 + ] + ], + "center_px": [ + 1055.0, + 222.0 + ], + "area_px": 244.0 + }, + { + "image_points_px": [ + [ + 1007.0, + 462.0 + ], + [ + 1015.0, + 465.0 + ], + [ + 1009.0, + 490.0 + ], + [ + 999.0, + 488.0 + ] + ], + "center_px": [ + 1007.5, + 476.25 + ], + "area_px": 247.0 + } + ] +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam2_camera_pose.json b/data/homing/20260625_175916/cam2_camera_pose.json new file mode 100644 index 0000000..aecfbd7 --- /dev/null +++ b/data/homing/20260625_175916/cam2_camera_pose.json @@ -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": [] + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/cam2_debug.jpg b/data/homing/20260625_175916/cam2_debug.jpg new file mode 100644 index 0000000..6f1a558 Binary files /dev/null and b/data/homing/20260625_175916/cam2_debug.jpg differ diff --git a/data/homing/20260625_175916/robot_1781069752019.json b/data/homing/20260625_175916/robot_1781069752019.json new file mode 100644 index 0000000..8fa06ee --- /dev/null +++ b/data/homing/20260625_175916/robot_1781069752019.json @@ -0,0 +1,2487 @@ +{ + "coordinateSystem": { + "handedness": "right", + "x": "right", + "y": "backward", + "z": "up" + }, + "units": { + "length": "mm", + "rotation": "degree" + }, + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "renderingInfo": { + "width": 1280, + "height": 720, + "renderDefaults": { + "width": 1280, + "height": 720, + "dofFStop": 11 + }, + "cameraPosition__1": [ + -10, + -800, + 500 + ], + "cameraPosition__2": [ + -500, + 300, + 1200 + ], + "cameraPosition__3": [ + -200, + -900, + 200 + ], + "cameraPosition__4": [ + 1200, + 200, + 300 + ], + "cameraPosition_a": [ + -300, + -800, + 500 + ], + "cameraPosition": [ + -200, + 200, + 1400 + ], + "cameraPosition_c": [ + 600, + -500, + 600 + ], + "cameraTarget": [ + 200, + -200, + 180 + ], + "cameraUpVector": [ + 0, + 0, + 1 + ], + "lightPosition": [ + -500, + -500, + 500 + ], + "lightTarget": [ + 0, + 0, + 0 + ], + "lightUpVector": [ + 0, + 0, + 1 + ], + "metric": "mm", + "showSkeleton": true, + "showMarkers": true, + "backgroundColor": [ + 0.7, + 0.85, + 1 + ], + "backgroundStrength": 0.2, + "sunEnergy": 0.35, + "areaEnergy": 120, + "exposure": -1.5, + "lensDirt": true, + "lensDirtStrength": 0.08, + "dofEnabled": true, + "dofFStop": 11, + "arucoDust": true, + "arucoDustStrength": 1.6, + "markerOffsetMaxMm": 4, + "markerOffsetSeed": 0, + "markerRotationMaxDeg": 3, + "motionBlur": true, + "motionBlurMaxPx": 5.5, + "focalErrorPct": 0.5, + "principalErrorPx": 3, + "residualDistortion": [ + 0.02, + -0.01 + ], + "localizedBlur": false, + "localizedBlurStrength": 0.15, + "vignette": true, + "vignetteStrength": 0.08, + "sensorNoise": true, + "sensorNoiseStrength": 0.01, + "lensDistortion": true, + "lensDistortionStrength": 0.002, + "materials": { + "wood": { + "baseColor": [ + 0.72, + 0.52, + 0.33 + ], + "roughness": 0.85, + "metallic": 0 + }, + "plaWhite": { + "baseColor": [ + 0.95, + 0.95, + 0.95 + ], + "roughness": 0.45, + "metallic": 0 + }, + "steel": { + "baseColor": [ + 0.72, + 0.72, + 0.75 + ], + "roughness": 0.25, + "metallic": 1 + }, + "powderCoatBlue": { + "baseColor": [ + 0.15, + 0.25, + 0.7 + ], + "roughness": 0.55, + "metallic": 0 + }, + "defaultPlastic": { + "baseColor": [ + 0.95, + 0.95, + 0.95 + ], + "roughness": 0.4, + "metallic": 0 + }, + "skeletonRed": { + "baseColor": [ + 0.85, + 0.2, + 0.2 + ], + "roughness": 0.35, + "metallic": 0 + }, + "markerBlack": { + "baseColor": [ + 0.04, + 0.04, + 0.04 + ], + "roughness": 0.8, + "metallic": 0 + } + }, + "skeletonDefaults": { + "radius": 4, + "color": [ + 0.85, + 0.2, + 0.2 + ] + }, + "markerDefaults": { + "size": 25, + "thickness": 1, + "color": [ + 0.04, + 0.04, + 0.04 + ] + }, + "defaultPosition": { + "x": 80, + "y": 20, + "z": 80, + "a": -120, + "b": 23, + "c": 9, + "e": 3 + } + }, + "defaultPosition__": { + "x": 10, + "y": 4, + "z": 20, + "a": 10, + "b": 2, + "c": 9, + "e": 1 + }, + "defaultPosition": { + "x": 50, + "y": 4, + "z": 176, + "a": 20, + "b": 60, + "c": 9, + "e": 5 + }, + "recognized": { + "x": null, + "y": null, + "z": null, + "a": null, + "b": null, + "c": null, + "e": null + }, + "constraint_rules": { + "rigid_distance": { + "enabled": true, + "mode": "mst", + "weight": 1 + }, + "joint_axis_projection": { + "enabled": true, + "max_pairs": 2, + "weight": 0.35 + }, + "chain_axis_projection": { + "enabled": false, + "max_depth": 3, + "max_pairs": 2, + "weight": 0.15 + }, + "axis_alignment_threshold": 0.95 + }, + "observation_weighting": { + "enabled": true, + "distance_weight": true, + "marker_size_weight": true, + "view_angle_weight": true + }, + "multiview_calculation": { + "combine_mode": "mean", + "size_ref_px": 50, + "border_ref_px": 120, + "center_ref_norm": 0.01, + "sharpness_ref": 2500, + "homography_ref": 0.18, + "size_factor": 0.3, + "aspect_factor": 0.3, + "border_factor": 0.01, + "center_factor": 0.01, + "sharpness_factor": 0.5, + "homography_factor": 0.2, + "normal_visibility_factor": 0.01, + "spin_factor": 0.3, + "weight_floor": 0.3 + }, + "pose_estimation": { + "method": "hybrid", + "marker_observation": "corner_points", + "corner_point_links": ["Hand", "Palm", "FingerA", "FingerB"], + "use_normals": true, + "normal_weight": 100, + "robust_loss": "huber", + "huber_delta_mm": 8, + "max_iterations": 200, + "min_cameras_per_marker": 2, + "finger_block_joints": [ + "b", + "c", + "e" + ], + "per_link_method": {}, + "fit_origin_link": "Arm1" + }, + "robot_test_poses": { + "4": { + "x": 70, + "y": 50, + "z": -70, + "a": 120, + "b": 50, + "c": 30, + "e": 20 + }, + "5": { + "x": 180, + "y": 86, + "z": -120, + "a": -60, + "b": 22, + "c": 91, + "e": 10 + }, + "6": { + "x": 80, + "y": 20, + "z": 80, + "a": -120, + "b": 23, + "c": 9, + "e": 3 + }, + "7": { + "x": 30, + "y": -2, + "z": 95, + "a": 20, + "b": 23, + "c": 9, + "e": 9 + }, + "8": { + "x": 50, + "y": -2, + "z": 95, + "a": 20, + "b": 60, + "c": 9, + "e": 3 + }, + "9": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8 + }, + "10": { + "x": 120, + "y": 60, + "z": -110, + "a": 20, + "b": 30, + "c": 180, + "e": 4 + }, + "11": { + "x": 50, + "y": 4, + "z": 176, + "a": 20, + "b": 60, + "c": 9, + "e": 5 + }, + "12": { + "x": 50, + "y": 0, + "z": 178, + "a": 210, + "b": 80, + "c": 90, + "e": 6 + }, + "9a": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8, + "rendering": { + "width": 1440, + "height": 1080, + "dofFStop": 11 + } + }, + "9b": { + "x": 60, + "y": -2, + "z": 95, + "a": 200, + "b": 60, + "c": 9, + "e": 8, + "rendering": { + "width": 4896, + "height": 3264, + "dofFStop": 5.6 + } + } + }, + "test_camera_positions": { + "a": [ + -300, + -800, + 800 + ], + "b": [ + 300, + -900, + 1200 + ], + "c": [ + 300, + -900, + 400 + ], + "d": [ + 700, + -800, + 400 + ], + "e": [ + 1200, + -900, + 400 + ], + "f": [ + 500, + -300, + 1400 + ], + "g": [ + -200, + 200, + 1400 + ] + }, + "test_camera_targets": { + "a": [ + 210, + -100, + 180 + ], + "b": [ + 310, + -80, + 180 + ], + "c": [ + 210, + -100, + 150 + ], + "d": [ + 210, + -100, + 150 + ], + "e": [ + 210, + -100, + 50 + ], + "f": [ + 200, + -200, + 180 + ], + "g": [ + 200, + -200, + 180 + ] + }, + "movements": { + "x": null, + "y": null, + "z": null, + "a": null, + "b": null, + "c": null, + "e": null + }, + "state_pose_params": { + "numbers_of_Elements_to_consider_start": 3, + "numbers_of_Elements_to_consider_final": 5, + "solver_in_between_geometrical": false, + "solver_after_geometrical": false, + "geometric_passes_per_stage": 2, + "revolute_search_coarse_deg": 5, + "revolute_search_fine_deg": 1, + "root_pose_min_markers": 3, + "use_marker_normals_flip_tiebreak": true, + "normal_flip_weight": 0.05 + }, + "links": { + "Board": { + "parent": null, + "size": [ + 1000, + 200, + 25 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "skeleton": { + "from": [ + 0, + 0, + 16 + ], + "to": [ + 1000, + 0, + 16 + ], + "radius": 4, + "color": [ + 0.85, + 0.2, + 0.2 + ] + }, + "markers": [ + { + "id": 46, + "set": "A0", + "position": [ + 537.44, + 185.2, + -27.2 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90, + "info": "is placed on a white paper, A0_60Arucos_25mm_Seet223.pdf, with the following marker placements:" + }, + { + "id": 47, + "set": "A0", + "position": [ + 343.18, + -286.05, + -27.49 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 48, + "set": "A0", + "position": [ + 687.51, + -321.53, + -26.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 49, + "set": "A0", + "position": [ + 1006.62, + 156.32, + -26.5 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 50, + "set": "A0", + "position": [ + 574.23, + 211.48, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 51, + "set": "A0", + "position": [ + 167.18, + -170.93, + -27.76 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 52, + "set": "A0", + "position": [ + 95.5, + 210.08, + -27.86 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 53, + "set": "A0", + "position": [ + 487.08, + 212.19, + -27.28 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 54, + "set": "A0", + "position": [ + 341.05, + -330.09, + -27.5 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 58, + "set": "A0", + "position": [ + 49.3, + -216.52, + -27.93 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 59, + "set": "A0", + "position": [ + 625.19, + -279.32, + -27.07 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 60, + "set": "A0", + "position": [ + 435.46, + 283.95, + -27.36 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 61, + "set": "A0", + "position": [ + -21.12, + 337.69, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 62, + "set": "A0", + "position": [ + 404.07, + -174.84, + -27.4 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 63, + "set": "A0", + "position": [ + 776.54, + -237.29, + -26.85 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 64, + "set": "A0", + "position": [ + -21.95, + -186.37, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 65, + "set": "A0", + "position": [ + 802.3, + -298.61, + -26.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 66, + "set": "A0", + "position": [ + 208.41, + -362.24, + -27.7 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 67, + "set": "A0", + "position": [ + 524.1, + 266.85, + -27.22 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 68, + "set": "A0", + "position": [ + 574.4, + 170.26, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 69, + "set": "A0", + "position": [ + 6.58, + -279.46, + -28 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 70, + "set": "A0", + "position": [ + 603.03, + 299.84, + -27.11 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 71, + "set": "A0", + "position": [ + 748.71, + -285.05, + -26.89 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 72, + "set": "A0", + "position": [ + 441.75, + 194.44, + -27.35 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 73, + "set": "A0", + "position": [ + 223.01, + 334.05, + -27.67 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 74, + "set": "A0", + "position": [ + 94.36, + 145.93, + -27.87 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 75, + "set": "A0", + "position": [ + -24.94, + 196.46, + -28.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 76, + "set": "A0", + "position": [ + 685.86, + 166, + -26.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 79, + "set": "A0", + "position": [ + 311.73, + -158.5, + -27.54 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 80, + "set": "A0", + "position": [ + 862.35, + -337.39, + -26.72 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 81, + "set": "A0", + "position": [ + 132.81, + 170.31, + -27.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 82, + "set": "A0", + "position": [ + 220.31, + 298.19, + -27.68 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 83, + "set": "A0", + "position": [ + 45.47, + 340.83, + -27.94 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 84, + "set": "A0", + "position": [ + 408.49, + 258.67, + -27.4 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 85, + "set": "A0", + "position": [ + 503.43, + -312.87, + -27.25 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 86, + "set": "A0", + "position": [ + 364.02, + 292.42, + -27.46 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 87, + "set": "A0", + "position": [ + 942.73, + -247.53, + -26.6 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 88, + "set": "A0", + "position": [ + 767.09, + 314.94, + -26.86 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 89, + "set": "A0", + "position": [ + 986.65, + -371.08, + -26.53 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 90, + "set": "A0", + "position": [ + 644.39, + 315.79, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 91, + "set": "A0", + "position": [ + 724.61, + 327.11, + -26.92 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 92, + "set": "A0", + "position": [ + 644.42, + -185.49, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 93, + "set": "A0", + "position": [ + 935.44, + 141.86, + -26.61 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 94, + "set": "A0", + "position": [ + 876.38, + 172.13, + -26.7 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 95, + "set": "A0", + "position": [ + 185.04, + -272.99, + -27.73 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 96, + "set": "A0", + "position": [ + 369.1, + -186.1, + -27.46 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 97, + "set": "A0", + "position": [ + 303.02, + -359.03, + -27.55 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 98, + "set": "A0", + "position": [ + 576.48, + 314.67, + -27.15 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 100, + "set": "A0", + "position": [ + 803.92, + 171.12, + -26.81 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 101, + "set": "A0", + "position": [ + 118.86, + 300, + -27.83 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 102, + "set": "A0", + "position": [ + 648.88, + -223.66, + -27.04 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 103, + "set": "A0", + "position": [ + 105.03, + -186.33, + -27.85 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 104, + "set": "A0", + "position": [ + 827.64, + 237.83, + -26.77 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 105, + "set": "A0", + "position": [ + 523.86, + -266.44, + -27.22 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 217, + "set": "rail", + "position": [ + 732.39, + -23.88, + 7.39 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 210, + "set": "rail", + "position": [ + 122.63, + -13.98, + -0.72 + ], + "normal": [ + 0, + 0, + 1 + ] + }, + { + "id": 215, + "position": [ + 335.09, + -95.39, + -9.19 + ], + "set": "rail" + }, + { + "id": 208, + "position": [ + 631.01, + -98.43, + -7.71 + ], + "set": "rail" + } + ], + "model": [ + { + "stlFile": "surfaces/Board.stl", + "originOfModel": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + 0, + -90 + ], + "material": "wood" + }, + { + "stlFile": "surfaces/BoardRail.stl", + "originOfModel": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + 0, + -90 + ], + "material": "steel" + } + ] + }, + "Base": { + "parent": "Board", + "size": [ + 150, + 200, + 150 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 0, + 0, + 16 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "x" + }, + "skeleton": { + "from": [ + 0, + 108, + 45 + ], + "to": [ + 110, + 108, + 45 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "skeletonCorrected": { + "from": [ + 0, + 108, + 45 + ], + "to": [ + 110, + 101.1, + 55.2 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [], + "model": [ + { + "stlFile": "surfaces/Base.stl", + "originOfModel": [ + -30, + 0, + -35 + ], + "rotationOfModelDegree": [ + 0, + 0, + 0 + ], + "material": "plaWhite" + } + ] + }, + "Arm1": { + "parent": "Base", + "size": [ + 70, + 250, + 70 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint1", + "type": "revolute", + "axis": [ + -1, + 0, + 0 + ], + "origin": [110, 101.6224, -13.1631], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "y" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -250, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.2, + 0.9 + ] + }, + "markers": [ + { + "id": 198, + "name": "aruco_198", + "position": [ + -0.66, + -158.22, + 34.29 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 229, + "name": "aruco_229", + "position": [ + -1, + -248.22, + 34.29 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 242, + "name": "aruco_242", + "position": [ + -0.9, + -248.22, + -35.71 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 0 + }, + { + "id": 243, + "name": "aruco_243", + "position": [ + -1.08, + -283.22, + -0.71 + ], + "normal": [ + 0, + -1, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 197, + "name": "aruco_197", + "position": [ + -35.95, + -248.08, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 0 + }, + { + "id": 55, + "set": "A0", + "position": [ + 282.76, + -261.86, + -27.58 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 56, + "set": "A0", + "position": [ + 499.34, + 168.57, + -27.26 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 57, + "set": "A0", + "position": [ + 601.52, + -364.54, + -27.11 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 77, + "set": "A0", + "position": [ + 18.94, + 193.28, + -27.98 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 99, + "set": "A0", + "position": [ + 957.97, + -323.38, + -26.58 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + }, + { + "id": 78, + "set": "A0", + "position": [ + 821.84, + -345.7, + -26.78 + ], + "normal": [ + 0, + 0, + 1 + ], + "spin": 90 + } + ], + "model": [ + { + "stlFile": "surfaces/Holm.stl", + "originOfModel__": [ + -25, + 29, + -28.5 + ], + "originOfModel": [ + -29, + 25, + 28.5 + ], + "rotationOfModelDegree__": [ + 0, + 0, + 0 + ], + "rotationOfModelDegree": [ + 180, + 0, + -90 + ], + "material": "powderCoatBlue" + } + ] + }, + "Ellbow": { + "parent": "Arm1", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint2", + "type": "revolute", + "axis": [ + -1, + 0, + 0 + ], + "origin": [ + 0, + -250, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "z" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 90, + 0, + 0 + ], + "radius": 4, + "color": [ + 0.9, + 0.2, + 0.2 + ] + }, + "model": [ + { + "stlFile": "surfaces/Ellebogen.stl", + "originOfModel": [ + 90, + 0, + 0 + ], + "rotationOfModelDegree": [ + 0, + -90, + -90 + ], + "material": "defaultPlastic" + } + ], + "markers": [ + { + "id": 116, + "name": "aruco_116", + "position": [ + 124.99, + 1.31, + -0.52 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 0 + }, + { + "id": 122, + "name": "aruco_122", + "position": [ + 90.04, + 1.44, + -35.57 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 129, + "name": "aruco_129", + "position": [ + 89.94, + 1.44, + 34.43 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 132, + "name": "aruco_132", + "position": [ + 52.44, + 1.58, + 34.37 + ], + "normal": [ + 0, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 248, + "name": "aruco_248", + "position": [ + 52.54, + 1.58, + -35.63 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 232, + "name": "aruco_232", + "position": [ + 90.12, + 26.19, + -25.32 + ], + "normal": [ + 0, + 1, + -1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 121, + "name": "aruco_121", + "position": [ + 90.05, + 26.19, + 24.18 + ], + "normal": [ + 0, + 1, + 1 + ], + "size": 25, + "spin": 90 + } + ] + }, + "Arm2": { + "parent": "Ellbow", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint3", + "type": "revolute", + "axis": [ + 0, + -1, + 0 + ], + "origin": [ + 90, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "a" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -250, + 0 + ], + "radius": 4, + "color": [ + 0.95, + 0.85, + 0.2 + ] + }, + "model": [ + { + "stlFile": "surfaces/Unterarm.stl", + "originOfModel": [ + 0, + -250, + 0 + ], + "rotationOfModelDegree": [ + 180, + 0, + -90 + ], + "material": "defaultPlastic" + } + ], + "markers": [ + { + "id": 148, + "name": "aruco_148", + "position": [ + -35.83, + -217.09, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 144, + "name": "aruco_144", + "position": [ + -35.43, + -110.09, + -0.76 + ], + "normal": [ + -1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 146, + "name": "aruco_146", + "position": [ + -25.22, + -110.12, + 24.01 + ], + "normal": [ + -1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 143, + "name": "aruco_143", + "position": [ + -25.48, + -180.12, + 24 + ], + "normal": [ + -1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 151, + "name": "aruco_151", + "position": [ + 25.48, + -180.12, + 24 + ], + "normal": [ + 1, + 0, + 1 + ], + "size": 25, + "spin": 90 + }, + { + "id": 154, + "name": "aruco_154", + "position": [ + 35, + -110.09, + 0 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 153, + "name": "aruco_153", + "position": [ + 35, + -217, + 0 + ], + "normal": [ + 1, + 0, + 0 + ], + "size": 25, + "spin": 90 + }, + { + "id": 157, + "name": "aruco_157", + "position": [ + 0, + -180.12, + -30 + ], + "normal": [ + 0, + 0, + -1 + ], + "size": 25, + "spin": 90 + } + ] + }, + "Hand": { + "parent": "Arm2", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint4", + "type": "revolute", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 0, + -250, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "b" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -35, + 0 + ], + "radius": 4, + "color": [ + 0.95, + 0.55, + 0.15 + ] + } + }, + "Palm": { + "parent": "Hand", + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Joint3", + "type": "revolute", + "axis": [ + 0, + -1, + 0 + ], + "origin": [ + 0, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "c" + }, + "skeleton": { + "from": [ + -50, + -35, + 0 + ], + "to": [ + 50, + -35, + 0 + ], + "radius": 7, + "color": [ + 0.95, + 0.2, + 0.2 + ] + } + }, + "FingerA": { + "parent": "Palm", + "size": [ + 80, + 60, + 20 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + 1, + 0, + 0 + ], + "origin": [ + 4, + -35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "e" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -60, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [ + { + "id": 147, + "position": [ + 12, + -24, + -17.1 + ], + "normal": [ + -10.98, + 0, + -23.56 + ], + "spin": 90 + }, + { + "id": 196, + "position": [ + 1.5, + -2.2, + 25.8 + ], + "normal": [ + 0, + -25.6, + 9.5 + ], + "spin": 270 + }, + { + "id": 137, + "position": [ + 13.9, + -40, + 0 + ], + "normal": [ + 1, + -0.35, + 0.4 + ], + "spin": 207 + } + ], + "model": [ + { + "stlFile": "surfaces/Finger.stl", + "originOfModel": [ + 24, + 0, + -9.1 + ], + "rotationOfModelDegree": [ + 90, + -90, + 0 + ], + "material": "defaultPlastic" + } + ] + }, + "FingerB": { + "parent": "Palm", + "size": [ + 80, + 60, + 20 + ], + "mountPosition": [ + 0, + 0, + 0 + ], + "mountRotation": [ + 0, + 0, + 0 + ], + "jointToParent": { + "name": "Slider", + "type": "linear", + "axis": [ + -1, + 0, + 0 + ], + "origin": [ + -4, + -35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "variable": "e" + }, + "skeleton": { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 0, + -60, + 0 + ], + "radius": 4, + "color": [ + 0.2, + 0.8, + 0.2 + ] + }, + "markers": [ + { + "id": 142, + "position": [ + -12, + -24, + 17.1 + ], + "normal": [ + 10.98, + 0, + 23.56 + ], + "spin": 0 + }, + { + "id": 179, + "position": [ + -1.5, + -2.2, + -25.8 + ], + "normal": [ + 0, + -25.6, + -9.5 + ], + "spin": 90 + }, + { + "id": 178, + "position": [ + -13.9, + -40, + 0 + ], + "normal": [ + -1, + -0.35, + -0.4 + ], + "spin": -117 + } + ], + "model": [ + { + "stlFile": "surfaces/Finger.stl", + "originOfModel": [ + -24, + 0, + 9.1 + ], + "rotationOfModelDegree": [ + 90, + 90, + 0 + ], + "material": "defaultPlastic" + } + ] + } + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/robot_state.json b/data/homing/20260625_175916/robot_state.json new file mode 100644 index 0000000..0c29e5c --- /dev/null +++ b/data/homing/20260625_175916/robot_state.json @@ -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 +} \ No newline at end of file diff --git a/data/homing/20260625_175916/state_Arm1.json b/data/homing/20260625_175916/state_Arm1.json new file mode 100644 index 0000000..3b18e51 --- /dev/null +++ b/data/homing/20260625_175916/state_Arm1.json @@ -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 + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/state_Arm2.json b/data/homing/20260625_175916/state_Arm2.json new file mode 100644 index 0000000..3351c25 --- /dev/null +++ b/data/homing/20260625_175916/state_Arm2.json @@ -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 + } +} \ No newline at end of file diff --git a/data/homing/20260625_175916/state_Ellbow.json b/data/homing/20260625_175916/state_Ellbow.json new file mode 100644 index 0000000..1fbcf05 --- /dev/null +++ b/data/homing/20260625_175916/state_Ellbow.json @@ -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 + } +} \ No newline at end of file diff --git a/doc/Homing_5_Pose_MultiPoint_Weighted.md b/doc/Homing_5_Pose_MultiPoint_Weighted.md index 95b776a..f459b6c 100644 --- a/doc/Homing_5_Pose_MultiPoint_Weighted.md +++ b/doc/Homing_5_Pose_MultiPoint_Weighted.md @@ -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 diff --git a/scripts/robot_1781069752019.json b/scripts/robot_1781069752019.json index da8816a..b88f418 100644 --- a/scripts/robot_1781069752019.json +++ b/scripts/robot_1781069752019.json @@ -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",