diff --git a/pipeline/2_estimate_camera_from_observations.py b/pipeline/2_estimate_camera_from_observations.py index 447c64e..f6197c7 100644 --- a/pipeline/2_estimate_camera_from_observations.py +++ b/pipeline/2_estimate_camera_from_observations.py @@ -224,6 +224,13 @@ def load_marker_lookup(robot_json_path: str) -> Dict[int, Dict[str, Any]]: with open(robot_json_path, "r", encoding="utf-8") as f: robot_data = json.load(f) + length_units = str(robot_data.get("units", {}).get("length", "")).strip().lower() + length_scale = 1.0 + if length_units in ("mm", "millimeter", "millimeters"): + length_scale = 1.0 / 1000.0 + elif length_units in ("cm", "centimeter", "centimeters"): + length_scale = 1.0 / 100.0 + marker_lookup: Dict[int, Dict[str, Any]] = {} links = robot_data.get("links", {}) @@ -254,7 +261,7 @@ def load_marker_lookup(robot_json_path: str) -> Dict[int, Dict[str, Any]]: rotation = get_marker_rotation(marker) marker_lookup[marker_id] = { - "position": np.array(pos, dtype=np.float32), + "position": np.array(pos, dtype=np.float32) * np.float32(length_scale), "rotation": rotation, "on": marker.get("on", "unknown"), } @@ -690,7 +697,7 @@ def main() -> None: # B ≈ R A + t -> world = R * camera + t R_cw_init, t_cw_init = rigid_transform_no_scale(marker_cam_centers, X_world) R_wc_init = R_cw_init.T - t_wc_init = (-R_wc_init @ t_cw_init).reshape(3) + t_wc_init = -(R_wc_init @ t_cw_init).reshape(3) omega_init = cv2.Rodrigues(R_wc_init)[0].reshape(3) theta0 = pack_params(omega_init, t_wc_init) diff --git a/pipeline/2_estimate_camera_pose_from_aruco_json.py b/pipeline/2_estimate_camera_pose_from_aruco_json.py index 475b5ea..9cc3b50 100644 --- a/pipeline/2_estimate_camera_pose_from_aruco_json.py +++ b/pipeline/2_estimate_camera_pose_from_aruco_json.py @@ -126,7 +126,13 @@ def build_marker_lookup(robot_data): marker_lookup = {} - + length_units = str(robot_data.get("units", {}).get("length", "")).strip().lower() + length_scale = 1.0 + if length_units in ("mm", "millimeter", "millimeters"): + length_scale = 1.0 / 1000.0 + elif length_units in ("cm", "centimeter", "centimeters"): + length_scale = 1.0 / 100.0 + markers = [] # Neues Format: links -> Board -> markers @@ -169,7 +175,7 @@ def build_marker_lookup(robot_data): "position": np.array( pos, dtype=np.float32 - ), + ) * np.float32(length_scale), "rotation": rotation, "on": marker.get("on", "unknown") } diff --git a/pipeline/render_3a_aruco_detection.json b/pipeline/render_3a_aruco_detection.json index 3d4660a..2796b2d 100644 --- a/pipeline/render_3a_aruco_detection.json +++ b/pipeline/render_3a_aruco_detection.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:15Z", + "created_utc": "2026-05-29T06:03:07Z", "vision_config": { "MarkerType": "DICT_4X4_250", "MarkerSize": 0.025 @@ -46,7 +46,7 @@ }, "detections": [ { - "observation_id": "8c42df77-c894-4ea1-8d70-bc7242ec953b", + "observation_id": "f95b7df5-d56a-4e50-baae-ed98245255b0", "type": "aruco", "marker_id": 124, "marker_size_m": 0.025, @@ -100,7 +100,7 @@ "confidence": 0.6862086405991146 }, { - "observation_id": "549a7c31-573c-47d5-906d-2abdaf0e2163", + "observation_id": "d6a89cdb-43b2-4494-84c8-47d5de39baa8", "type": "aruco", "marker_id": 243, "marker_size_m": 0.025, @@ -154,7 +154,7 @@ "confidence": 0.953171926139578 }, { - "observation_id": "c4fc6e32-92a6-499d-b09d-9d1d88ced7c0", + "observation_id": "05209fc7-239c-43ca-8cf8-7566f456041d", "type": "aruco", "marker_id": 122, "marker_size_m": 0.025, @@ -208,7 +208,7 @@ "confidence": 0.5964639370258038 }, { - "observation_id": "4462ae69-6f30-4281-9ace-bc8cac13cb07", + "observation_id": "52848f64-67df-4213-91b2-ffdfe9064ee2", "type": "aruco", "marker_id": 102, "marker_size_m": 0.025, @@ -262,7 +262,7 @@ "confidence": 0.3578323322772018 }, { - "observation_id": "233fe57c-1886-4fce-914e-d6656f706474", + "observation_id": "7bc13599-644e-4dbd-8ad2-ad5f80056d8c", "type": "aruco", "marker_id": 229, "marker_size_m": 0.025, @@ -316,7 +316,7 @@ "confidence": 0.4396423002158715 }, { - "observation_id": "cfdcf058-d469-4ba1-92bf-b86c9ae9c486", + "observation_id": "41826dad-da5d-4fb1-87e4-757a2c21171a", "type": "aruco", "marker_id": 210, "marker_size_m": 0.025, @@ -370,7 +370,7 @@ "confidence": 0.23718801109435655 }, { - "observation_id": "7908f25a-83ca-43b4-a7e9-17a6b3dd00d6", + "observation_id": "f354d0f3-34a9-428e-887d-a4364525a2b0", "type": "aruco", "marker_id": 198, "marker_size_m": 0.025, @@ -424,7 +424,7 @@ "confidence": 0.27797680859006363 }, { - "observation_id": "70f6536d-4ec4-4681-bf8b-855004a93f19", + "observation_id": "447b944c-8faf-41e5-b724-af8f221c64fc", "type": "aruco", "marker_id": 205, "marker_size_m": 0.025, @@ -478,7 +478,7 @@ "confidence": 0.19676029488014599 }, { - "observation_id": "46c80ca9-5820-4672-8b09-34c7d7d2051f", + "observation_id": "51c410f3-45e5-4d70-9bd8-535c1306e4cf", "type": "aruco", "marker_id": 206, "marker_size_m": 0.025, @@ -532,7 +532,7 @@ "confidence": 0.23511362818048806 }, { - "observation_id": "66327b90-f891-4c45-9a90-e469527a527d", + "observation_id": "61058f2a-9c08-4073-a43e-7a907cf8fb75", "type": "aruco", "marker_id": 207, "marker_size_m": 0.025, diff --git a/pipeline/render_3a_camera_pose.json b/pipeline/render_3a_camera_pose.json index 87eb5d8..14be9b7 100644 --- a/pipeline/render_3a_camera_pose.json +++ b/pipeline/render_3a_camera_pose.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:16Z", + "created_utc": "2026-05-29T06:03:09Z", "source": { "detection_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\pipeline\\render_3a_aruco_detection.json", "robot_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\robot.json" @@ -52,57 +52,17 @@ 4, 5, 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 + 7 ], "rms": [ - 1.0114134663676055, - 0.6639182528097215, - 0.5739469492087472, - 0.5286835626522526, - 0.4694051705223743, - 0.3969964464975006, - 0.3151761230050886, - 0.22825811420039874, - 0.14334708153431971, - 0.07618149778337073, - 0.04802982967284346, - 0.04035287824536157, - 0.033959902522562355, - 0.028057435706365975, - 0.022767087572099415, - 0.018281990481919433, - 0.01422702734760535, - 0.01058775888038278, - 0.007566043482152367, - 0.005123936904466261, - 0.003261157779092087, - 0.0018882632118665536, - 0.0007684323923658777, - 0.0001398894364081004, - 4.2590187754836205e-05, - 4.161871278906256e-05, - 4.161660887281736e-05, - 4.16166073463803e-05 + 0.013277718382545302, + 0.0007609616355193204, + 8.749646663679635e-05, + 4.47706418004794e-05, + 4.174347547390919e-05, + 4.162024607264234e-05, + 4.161840648707478e-05, + 4.16183986833156e-05 ], "lambda": [ 0.001, @@ -112,158 +72,138 @@ 6.25e-05, 3.125e-05, 1.5625e-05, - 7.8125e-06, - 3.90625e-06, - 1.953125e-06, - 9.765625e-07, - 4.8828125e-07, - 2.44140625e-07, - 1.220703125e-07, - 6.103515625e-08, - 3.0517578125e-08, - 1.52587890625e-08, - 7.62939453125e-09, - 3.814697265625e-09, - 1.9073486328125e-09, - 9.5367431640625e-10, - 4.76837158203125e-10, - 2.384185791015625e-10, - 1.1920928955078125e-10, - 5.960464477539063e-11, - 2.980232238769531e-11, - 1.4901161193847657e-11, - 7.450580596923828e-12 + 7.8125e-06 ] }, "residual_rms_px": 0.10430687360172344, "residual_median_px": 0.07433889289506992, "residual_max_px": 0.1640622076531485, - "sigma2_normalized": 6.92776802797649e-09 + "sigma2_normalized": 6.928364432840307e-09 }, "camera_pose": { "world_to_camera": { "rotation_matrix": [ [ - 0.7620593309402466, - -0.647443413734436, - 0.009086735546588898 + 0.7620592713356018, + -0.6474434733390808, + 0.009086829610168934 ], [ - -0.27515384554862976, - -0.33650344610214233, + -0.2751538157463074, + -0.3365034759044647, -0.9005863666534424 ], [ - 0.5861364603042603, - 0.6837999820709229, + 0.586136519908905, + 0.6837999224662781, -0.4345821440219879 ] ], "translation_m": [ - -273.4744567871094, - 192.1861572265625, - 922.5557250976562 + -0.27347445487976074, + 0.1921861469745636, + 0.922555685043335 ], "rvec_rad": [ - 1.9264447184295097, - -0.7016308556001063, - 0.45266440822553355 + 1.9264447207058966, + -0.7016308952348262, + 0.4526645615419089 ] }, "camera_in_world": { "position_m": [ - -279.4590148925781, - -743.2315063476562, - 576.491455078125 + -0.2794590890407562, + -0.743231475353241, + 0.5764914751052856 ], "position_mm": [ - -279459.0, - -743231.5, - 576491.4375 + -279.4590759277344, + -743.2314453125, + 576.491455078125 ], "orientation_deg": { "roll": 122.43758392333984, - "pitch": -35.88331624307256, - "yaw": -19.852935791015625 + "pitch": -35.883320699421276, + "yaw": -19.852933883666992 } }, "uncertainty": { "pose_covariance_6x6": [ [ - 3.9943919468012445e-06, - 1.1154473298546209e-06, - -1.118897886488766e-06, - -0.0005765194014531353, - 0.00041358722245405364, - 0.0022187093112645048 + 3.994733283769376e-06, + 1.1155413505842761e-06, + -1.1189873341773177e-06, + -5.765674568291733e-07, + 4.13621515183102e-07, + 2.218896511763385e-06 ], [ - 1.1154473298546145e-06, - 8.886589103748773e-07, - -2.3371494827736547e-06, - -0.0005830464121191728, - 0.00045167407920918234, - 0.0022451714145222145 + 1.1155413505843926e-06, + 8.887333788347529e-07, + -2.337344290764031e-06, + -5.830951422961517e-07, + 4.5171173864670057e-07, + 2.245361353962327e-06 ], [ - -1.1188978864887337e-06, - -2.337149482773653e-06, - 7.81346071908241e-06, - 0.0017024049446432569, - -0.0013917849716835104, - -0.006611198495461098 + -1.1189873341777406e-06, + -2.33734429076412e-06, + 7.81411446076644e-06, + 1.7025470729450462e-06, + -1.3919010913021312e-06, + -6.611757311752694e-06 ], [ - -0.0005765194014531287, - -0.0005830464121191726, - 0.0017024049446432584, - 0.4034039987420133, - -0.3201198249762993, - -1.5516686677679883 + -5.765674568292605e-07, + -5.830951422961595e-07, + 1.7025470729450078e-06, + 4.0343769578632003e-07, + -3.2014652246215944e-07, + -1.551799855987555e-06 ], [ - 0.00041358722245404654, - 0.0004516740792091824, - -0.001391784971683514, - -0.3201198249762996, - 0.264775180218034, - 1.2494317575832103 + 4.1362151518317385e-07, + 4.517117386467093e-07, + -1.3919010913021083e-06, + -3.201465224621612e-07, + 2.6479725503078397e-07, + 1.2495372714796657e-06 ], [ - 0.002218709311264482, - 0.002245171414522214, - -0.006611198495461105, - -1.5516686677679885, - 1.2494317575832097, - 6.052706569330424 + 2.2188965117637215e-06, + 2.245361353962358e-06, + -6.61175731175255e-06, + -1.5517998559875556e-06, + 1.2495372714796598e-06, + 6.053224659085346e-06 ] ], "parameter_std": { "rvec_std_deg": [ - 0.11451120140577908, - 0.05401199046483257, - 0.16015641874171344 + 0.11451609402420855, + 0.05401425348466939, + 0.16016311863697794 ], "tvec_std_m": [ - 0.6351409282529455, - 0.51456309644011, - 2.460224902184844 + 0.0006351674549174572, + 0.0005145845460473759, + 0.0024603301931011914 ] }, "camera_center_std_m": [ - 2.1995968929483474, - 1.1548044194575717, - 1.510385159357917 + 0.0017296313653151708, + 0.0027590353584458853, + 0.0023603543530536296 ], "camera_center_std_mm": [ - 2199.5968929483474, - 1154.8044194575718, - 1510.385159357917 + 1.729631365315171, + 2.7590353584458853, + 2.3603543530536295 ], "orientation_std_deg": { - "roll": 0.08832300327411201, - "pitch": 0.13890967443140134, - "yaw": 0.020881373905939325 + "roll": 0.1051783179305808, + "pitch": 0.14376921142986104, + "yaw": 0.02230052560885805 } } }, diff --git a/pipeline/render_3b_aruco_detection.json b/pipeline/render_3b_aruco_detection.json index b19655b..4801ba7 100644 --- a/pipeline/render_3b_aruco_detection.json +++ b/pipeline/render_3b_aruco_detection.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:15Z", + "created_utc": "2026-05-29T06:03:08Z", "vision_config": { "MarkerType": "DICT_4X4_250", "MarkerSize": 0.025 @@ -46,7 +46,7 @@ }, "detections": [ { - "observation_id": "1be932ff-7263-4ced-83b8-58349f38889f", + "observation_id": "df664593-ada8-4c44-a00f-8936a037e7eb", "type": "aruco", "marker_id": 243, "marker_size_m": 0.025, @@ -100,7 +100,7 @@ "confidence": 0.8522257252911212 }, { - "observation_id": "66a033df-340c-4cab-b2db-1766eaeecbd5", + "observation_id": "a7f8731a-1479-4db3-af34-2b5542362b93", "type": "aruco", "marker_id": 122, "marker_size_m": 0.025, @@ -154,7 +154,7 @@ "confidence": 0.2874514216623714 }, { - "observation_id": "9189022c-4502-4196-adb3-e3beb9778552", + "observation_id": "3cf6936d-c17e-46be-960e-fec43a1a8a34", "type": "aruco", "marker_id": 229, "marker_size_m": 0.025, @@ -208,7 +208,7 @@ "confidence": 0.5547001883002887 }, { - "observation_id": "81a8944e-c517-4f33-a9af-826ccb1e4500", + "observation_id": "1eeec489-e960-4f11-bcc5-d84cfd85678d", "type": "aruco", "marker_id": 208, "marker_size_m": 0.025, @@ -262,7 +262,7 @@ "confidence": 0.6072727689079809 }, { - "observation_id": "e8e63ed2-0a0d-4619-88bd-512e3b6462af", + "observation_id": "7f948349-46ae-4ada-bf71-a87a11853b58", "type": "aruco", "marker_id": 215, "marker_size_m": 0.025, @@ -316,7 +316,7 @@ "confidence": 0.6168610191628993 }, { - "observation_id": "79675f29-63c3-45bc-8e37-779d5a97d76a", + "observation_id": "22b325e5-012e-458f-8841-176fddce4f01", "type": "aruco", "marker_id": 214, "marker_size_m": 0.025, @@ -370,7 +370,7 @@ "confidence": 0.5524643209674667 }, { - "observation_id": "8e7e7d7d-531f-4f28-a777-882aa927f15e", + "observation_id": "297f15ef-5a04-4fde-ad31-715064472cab", "type": "aruco", "marker_id": 211, "marker_size_m": 0.025, @@ -424,7 +424,7 @@ "confidence": 0.5730650050844824 }, { - "observation_id": "19153e12-9f50-48c7-8069-2ea0f9214e36", + "observation_id": "5a57e9e6-1e2e-4061-aafe-72b4d412b042", "type": "aruco", "marker_id": 198, "marker_size_m": 0.025, @@ -478,7 +478,7 @@ "confidence": 0.4163346774695628 }, { - "observation_id": "df22043b-b438-4a0e-a53f-4aa96262911c", + "observation_id": "8b92d6ef-360b-40af-9d92-c1f0e013c0ee", "type": "aruco", "marker_id": 210, "marker_size_m": 0.025, diff --git a/pipeline/render_3b_camera_pose.json b/pipeline/render_3b_camera_pose.json index 5ccf3d7..d70fff4 100644 --- a/pipeline/render_3b_camera_pose.json +++ b/pipeline/render_3b_camera_pose.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:16Z", + "created_utc": "2026-05-29T06:03:10Z", "source": { "detection_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\pipeline\\render_3b_aruco_detection.json", "robot_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\robot.json" @@ -51,97 +51,15 @@ 2, 3, 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 + 5 ], "rms": [ - 14.818157274424525, - 6.6429684472286725, - 3.508293175019171, - 1.9569659577739633, - 1.0760750577807272, - 0.6558111727688115, - 0.5974384941473672, - 0.45776430515731414, - 0.3406747506535104, - 0.21284192970803506, - 0.21284192970803506, - 0.21284192970803506, - 0.21284192970803506, - 0.21284192970803506, - 0.13834869751593928, - 0.13834869751593928, - 0.12196764428961278, - 0.12196764428961278, - 0.12196764428961278, - 0.11109006687857191, - 0.11109006687857191, - 0.11109006687857191, - 0.10513254832847944, - 0.10513254832847944, - 0.10009463133300968, - 0.0972011239152783, - 0.08965747726813587, - 0.07896966206278197, - 0.06848004274985553, - 0.058568387282928645, - 0.04925640249856142, - 0.040730620366500596, - 0.033135104063634416, - 0.02650247419978119, - 0.020790086792429628, - 0.015941755983382246, - 0.012075496055238399, - 0.010697420477957333, - 0.010697420477957333, - 0.010697420477957333, - 0.010249775295046573, - 0.010249775295046573, - 0.010217299105490024, - 0.003080951472807064, - 0.0029219478792723522, - 0.002921843589954249, - 0.0029218434666077736 + 0.009974527619016302, + 0.0029778386918414713, + 0.00037403829040605563, + 0.00034035665812758465, + 0.0003403161910701215, + 0.00034031616508171713 ], "lambda": [ 0.001, @@ -149,179 +67,138 @@ 0.00025, 0.000125, 6.25e-05, - 3.125e-05, - 1.5625e-05, - 7.8125e-06, - 3.90625e-06, - 1.953125e-06, - 3.90625e-06, - 7.8125e-06, - 1.5625e-05, - 3.125e-05, - 1.5625e-05, - 3.125e-05, - 1.5625e-05, - 3.125e-05, - 6.25e-05, - 3.125e-05, - 6.25e-05, - 0.000125, - 6.25e-05, - 0.000125, - 6.25e-05, - 3.125e-05, - 1.5625e-05, - 7.8125e-06, - 3.90625e-06, - 1.953125e-06, - 9.765625e-07, - 4.8828125e-07, - 2.44140625e-07, - 1.220703125e-07, - 6.103515625e-08, - 3.0517578125e-08, - 1.52587890625e-08, - 7.62939453125e-09, - 1.52587890625e-08, - 3.0517578125e-08, - 1.52587890625e-08, - 3.0517578125e-08, - 1.52587890625e-08, - 7.62939453125e-09, - 3.814697265625e-09, - 1.9073486328125e-09, - 9.5367431640625e-10 + 3.125e-05 ] }, - "residual_rms_px": 7.325988977382018, - "residual_median_px": 5.2610158050715405, - "residual_max_px": 11.95199194038243, - "sigma2_normalized": 2.1342923107320546e-05 + "residual_rms_px": 0.8476327773109579, + "residual_median_px": 0.648112390780865, + "residual_max_px": 1.3545102652489567, + "sigma2_normalized": 2.895377305315825e-07 }, "camera_pose": { "world_to_camera": { "rotation_matrix": [ [ - -0.9725239872932434, - 0.033903129398822784, - -0.23032091557979584 + 0.9861742854118347, + 0.16566795110702515, + 0.0037960850168019533 ], [ - -0.10051494091749191, - 0.8312227725982666, - 0.5467773079872131 + 0.10729856789112091, + -0.6209254860877991, + -0.7764911651611328 ], [ - 0.20998544991016388, - 0.5549046993255615, - -0.8049763441085815 + -0.12628261744976044, + 0.7661629319190979, + -0.6301167011260986 ] ], "translation_m": [ - 180.4925537109375, - -45.28935623168945, - -859.5316162109375 + -0.17639264464378357, + 0.04974045231938362, + 0.8856023550033569 ], "rvec_rad": [ - -0.05955419353489003, - 3.226373471557783, - 0.9849571463938018 + 2.245916069073475, + 0.1893787147920251, + -0.08497870832755577 ] }, "camera_in_world": { "position_m": [ - 351.47021484375, - 508.4844055175781, - -625.5681762695312 + 0.28045299649238586, + -0.6184079647064209, + 0.5973254442214966 ], "position_mm": [ - 351470.21875, - 508484.40625, - -625568.1875 + 280.4530029296875, + -618.407958984375, + 597.325439453125 ], "orientation_deg": { - "roll": 145.41983032226562, - "pitch": -12.121499395069357, - "yaw": -174.09915161132812 + "roll": 129.43496704101562, + "pitch": 7.254831367062062, + "yaw": 6.209517478942871 } }, "uncertainty": { "pose_covariance_6x6": [ [ - 0.002350044145762458, - 0.0018448663795067805, - 0.002791262415386132, - 0.044346229182918716, - -0.07916151257588579, - -0.14927480851129382 + 7.10468843872467e-05, + -1.0188142662417317e-05, + 8.100236601514868e-06, + -2.4702922853077473e-07, + -1.2181736506097061e-06, + 1.1390126277890614e-06 ], [ - 0.0018448663795067872, - 0.0036429204877860334, - -0.001238434463788633, - 0.006197854651266595, - 0.030206644893667412, - -0.35477216802776246 + -1.018814266241648e-05, + 9.119358794673825e-06, + -1.5136526450200833e-05, + 5.544008778671917e-07, + -3.4644454865432676e-07, + 5.210663368769894e-07 ], [ - 0.002791262415386112, - -0.00123843446378866, - 0.015531235537186557, - 0.08030698335197134, - -0.04481294954598946, - 0.2747388184172584 + 8.100236601511832e-06, + -1.513652645020065e-05, + 6.039663469674294e-05, + -1.2163686651996553e-06, + -1.3647248871111275e-06, + -2.2185543179764333e-06 ], [ - 0.04434622918291879, - 0.006197854651266368, - 0.08030698335197246, - 5.115947766978903, - -1.7296342108112102, - 11.501531197034321 + -2.4702922853068945e-07, + 5.544008778671824e-07, + -1.216368665199642e-06, + 8.909086242511532e-08, + 4.709579924704998e-09, + 2.0523772812814756e-07 ], [ - -0.07916151257588577, - 0.030206644893667495, - -0.044812949545989626, - -1.7296342108112113, - 17.275134170996235, - 15.481414615323398 + -1.2181736506096485e-06, + -3.464445486543081e-07, + -1.364724887111208e-06, + 4.7095799247074595e-09, + 2.6753644920953526e-07, + 2.552831299809846e-07 ], [ - -0.14927480851129452, - -0.3547721680277628, - 0.2747388184172568, - 11.5015311970343, - 15.481414615323407, - 179.23527748073005 + 1.1390126277892835e-06, + 5.210663368769411e-07, + -2.2185543179763258e-06, + 2.0523772812814618e-07, + 2.552831299809781e-07, + 2.0278462436978523e-06 ] ], "parameter_std": { "rvec_std_deg": [ - 2.777542050899846, - 3.458179074295007, - 7.14045087126885 + 0.48294219448605197, + 0.17302337691534828, + 0.4452757077382589 ], "tvec_std_m": [ - 2.261846097102741, - 4.156336628690731, - 13.387878005148167 + 0.0002984809247257106, + 0.0005172392572200367, + 0.0014240246640061583 ] }, "camera_center_std_m": [ - 52.59102600708334, - 50.66008686135971, - 43.3784726294464 + 0.005315996210773081, + 0.004344049157013888, + 0.005566401662097682 ], "camera_center_std_mm": [ - 52591.02600708335, - 50660.08686135971, - 43378.4726294464 + 5.315996210773081, + 4.344049157013888, + 5.5664016620976815 ], "orientation_std_deg": { - "roll": 4.057851126238033, - "pitch": 3.771174837779904, - "yaw": 1.7875669447691551 + "roll": 0.38938838441106427, + "pitch": 0.37119422591459295, + "yaw": 0.11587592903072558 } } }, @@ -334,10 +211,10 @@ 638.0 ], "projected_center_px": [ - 986.5569458007812, - 638.244384765625 + 994.1914672851562, + 637.6500854492188 ], - "reprojection_error_px": 8.946392698950438, + "reprojection_error_px": 1.3545102652489567, "confidence": 0.6072727689079809 }, { @@ -347,10 +224,10 @@ 612.5 ], "projected_center_px": [ - 776.3766479492188, - 613.8399047851562 + 765.1234741210938, + 612.677001953125 ], - "reprojection_error_px": 11.95199194038243, + "reprojection_error_px": 0.648112390780865, "confidence": 0.6168610191628993 }, { @@ -360,10 +237,10 @@ 527.75 ], "projected_center_px": [ - 999.8966064453125, - 527.873291015625 + 996.41357421875, + 527.8440551757812 ], - "reprojection_error_px": 3.898556459022334, + "reprojection_error_px": 0.42413442504224375, "confidence": 0.5524643209674667 }, { @@ -373,10 +250,10 @@ 506.25 ], "projected_center_px": [ - 777.8927612304688, - 504.9873046875 + 783.9049072265625, + 506.3186950683594 ], - "reprojection_error_px": 5.2610158050715405, + "reprojection_error_px": 0.9075109371803377, "confidence": 0.5730650050844824 }, { @@ -386,10 +263,10 @@ 470.75 ], "projected_center_px": [ - 311.1917419433594, - 470.3533630371094 + 312.1726379394531, + 470.7790832519531 ], - "reprojection_error_px": 1.6079455996446261, + "reprojection_error_px": 0.5780940965821242, "confidence": 0.5452330001368535 } ] diff --git a/pipeline/render_3c_aruco_detection.json b/pipeline/render_3c_aruco_detection.json index b960b86..98ca3f6 100644 --- a/pipeline/render_3c_aruco_detection.json +++ b/pipeline/render_3c_aruco_detection.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:16Z", + "created_utc": "2026-05-29T06:03:09Z", "vision_config": { "MarkerType": "DICT_4X4_250", "MarkerSize": 0.025 @@ -46,7 +46,7 @@ }, "detections": [ { - "observation_id": "e3ebf6de-2232-420e-9cd2-a212da1b5cfe", + "observation_id": "c428f7ca-c6c6-4208-994c-69a56fa87a1d", "type": "aruco", "marker_id": 219, "marker_size_m": 0.025, @@ -100,7 +100,7 @@ "confidence": 0.7735450417034769 }, { - "observation_id": "1f6c7860-09d2-4c50-a008-e217462e0c96", + "observation_id": "00e68272-4cb7-4b93-98f8-efcc188685da", "type": "aruco", "marker_id": 218, "marker_size_m": 0.025, @@ -154,7 +154,7 @@ "confidence": 0.7950075578135153 }, { - "observation_id": "dbd1388b-c266-4acd-82ba-6fca6d718b34", + "observation_id": "ad0954b8-da38-4d82-825c-a05e65b0c5db", "type": "aruco", "marker_id": 122, "marker_size_m": 0.025, @@ -208,7 +208,7 @@ "confidence": 0.8202207056111124 }, { - "observation_id": "2e73fbcc-3be3-4e64-af5c-16ba5290c831", + "observation_id": "94886815-8819-4fd0-9dd9-0579e8bb356a", "type": "aruco", "marker_id": 214, "marker_size_m": 0.025, @@ -262,7 +262,7 @@ "confidence": 0.1700115058329765 }, { - "observation_id": "28bae644-cf36-4a6d-b635-c3e6c64cd52c", + "observation_id": "850986ee-399f-423c-8ffc-38c8b18b764d", "type": "aruco", "marker_id": 215, "marker_size_m": 0.025, @@ -316,7 +316,7 @@ "confidence": 0.9372326698512834 }, { - "observation_id": "5920e35c-5ae1-4e37-9f48-8fd5cad739bc", + "observation_id": "fca3abcc-7c19-415d-bf78-c47360086985", "type": "aruco", "marker_id": 244, "marker_size_m": 0.025, @@ -370,7 +370,7 @@ "confidence": 0.7137086345973509 }, { - "observation_id": "a1acb6ff-712a-4307-a287-06156a3bfdbd", + "observation_id": "2a004519-5a1e-4b51-ac4e-f2e15b9f8ddd", "type": "aruco", "marker_id": 229, "marker_size_m": 0.025, @@ -424,7 +424,7 @@ "confidence": 0.8888336147757544 }, { - "observation_id": "82319b49-4eec-48d1-baaa-37b81936bca1", + "observation_id": "d3d0a119-6c30-492f-9f4c-6e3fb13d8985", "type": "aruco", "marker_id": 211, "marker_size_m": 0.025, @@ -478,7 +478,7 @@ "confidence": 0.8902520865668376 }, { - "observation_id": "2e94951c-63c8-4dd0-ad23-b0136eaada51", + "observation_id": "93aa8eca-a954-4c99-a946-ce5f70ccfaaf", "type": "aruco", "marker_id": 246, "marker_size_m": 0.025, @@ -532,7 +532,7 @@ "confidence": 0.7343609168978227 }, { - "observation_id": "e1305f93-8804-4b3f-b8be-59e0df24d437", + "observation_id": "f5108f58-1608-4b8f-b8a0-a8b31179e150", "type": "aruco", "marker_id": 247, "marker_size_m": 0.025, @@ -586,7 +586,7 @@ "confidence": 0.72560382306579 }, { - "observation_id": "24637519-be83-4e03-b7b4-f83ee5f5da62", + "observation_id": "2ca775d6-ed4d-4ad0-85d1-1110d61be0a0", "type": "aruco", "marker_id": 198, "marker_size_m": 0.025, diff --git a/pipeline/render_3c_camera_pose.json b/pipeline/render_3c_camera_pose.json index 84da36e..3306c55 100644 --- a/pipeline/render_3c_camera_pose.json +++ b/pipeline/render_3c_camera_pose.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "created_utc": "2026-05-29T05:34:17Z", + "created_utc": "2026-05-29T06:03:10Z", "source": { "detection_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\pipeline\\render_3c_aruco_detection.json", "robot_json": "C:\\Users\\kech\\SynologyDrive\\2026-AppServer-AppRobot\\appRobotRendering\\robot.json" @@ -54,132 +54,22 @@ 7, 8, 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 + 10 ], "rms": [ - 8.276652092351446, - 3.2695419276393194, - 1.6997554577172982, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.9031353472765118, - 0.8761012206869034, - 0.8761012206869034, - 0.8761012206869034, - 0.6657758310157231, - 0.4982919577482978, - 0.463899810578019, - 0.4620191377323524, - 0.46061835425038966, - 0.45820325758845926, - 0.4535628754664195, - 0.44440988606652543, - 0.42668189732885436, - 0.39303163296273724, - 0.33250807541862465, - 0.2873217198737302, - 0.2310754990881048, - 0.1683327418729557, - 0.12140389664238704, - 0.091031135899403, - 0.06974953807273628, - 0.05302622844733477, - 0.039719619692176966, - 0.037288115046028705, - 0.019479927098974645, - 0.009348648211600379, - 0.005670126166140046, - 0.004435173697432046, - 0.003309583557122678, - 0.0021075079585650964, - 0.0010750386520058455, - 0.00038672742677653426, - 8.049312829495705e-05, - 9.15644812387087e-06, - 5.813634591654259e-07, - 1.9407836813260934e-08, - 3.2977852013459893e-10, - 2.8258286470569123e-12, - 1.2165664095469026e-14 + 0.00344680955780955, + 0.0020271807913530755, + 0.0012054573927883481, + 0.0005249513489291123, + 0.00011440662413309213, + 1.160155941872139e-05, + 7.215779361669864e-07, + 2.5148062241790062e-08, + 4.500141944380795e-10, + 4.065031937942975e-12, + 1.8438192734588975e-14 ], "lambda": [ - 0.001, - 0.0005, - 0.00025, - 0.000125, - 0.00025, - 0.0005, - 0.001, - 0.002, - 0.004, - 0.008, - 0.016, - 0.032, - 0.064, - 0.128, - 0.256, - 0.128, - 0.256, - 0.512, - 0.256, - 0.128, - 0.064, - 0.032, - 0.016, - 0.008, - 0.004, - 0.002, 0.001, 0.0005, 0.00025, @@ -190,154 +80,138 @@ 7.8125e-06, 3.90625e-06, 1.953125e-06, - 9.765625e-07, - 4.8828125e-07, - 2.44140625e-07, - 1.220703125e-07, - 6.103515625e-08, - 3.0517578125e-08, - 1.52587890625e-08, - 7.62939453125e-09, - 3.814697265625e-09, - 1.9073486328125e-09, - 9.5367431640625e-10, - 4.76837158203125e-10, - 2.384185791015625e-10, - 1.1920928955078125e-10, - 5.960464477539063e-11, - 2.980232238769531e-11, - 1.4901161193847657e-11 + 9.765625e-07 ] }, "residual_rms_px": 0.0, "residual_median_px": 0.0, "residual_max_px": 0.0, - "sigma2_normalized": 9.648909021380052e-32 + "sigma2_normalized": 6.085938624263665e-32 }, "camera_pose": { "world_to_camera": { "rotation_matrix": [ [ - 0.7478234767913818, - 0.5858157873153687, - -0.3123779296875 + 0.6542378067970276, + 0.7542697191238403, + 0.055227722972631454 ], [ - 0.6608203053474426, - -0.6115613579750061, - 0.43509677052497864 + 0.5993703603744507, + -0.47257471084594727, + -0.6460869312286377 ], [ - 0.06384828686714172, - -0.5318012237548828, - -0.8444588780403137 + -0.46122458577156067, + 0.45579633116722107, + -0.7612631320953369 ] ], "translation_m": [ - -38.69017028808594, - -76.18257904052734, - 733.07861328125 + -0.002736467868089676, + -0.051753539592027664, + 0.9323956966400146 ], "rvec_rad": [ - 3.428568125507585, - 1.3340777852363335, - -0.2659620236785496 + 2.2287567480572723, + 1.044617524144693, + -0.31331182858045287 ] }, "camera_in_world": { "position_m": [ - 32.47060012817383, - 365.9270935058594, - 640.1156005859375 + 0.46285367012023926, + -0.44737592339515686, + 0.6765123009681702 ], "position_mm": [ - 32470.599609375, - 365927.09375, - 640115.625 + 462.8536682128906, + -447.37591552734375, + 676.5123291015625 ], "orientation_deg": { - "roll": -147.79916381835938, - "pitch": -3.660727574305826, - "yaw": 41.46568298339844 + "roll": 149.0894775390625, + "pitch": 27.466156494334694, + "yaw": 42.493896484375 } }, "uncertainty": { "pose_covariance_6x6": [ [ - 8.629612631969329e-29, - 6.419343182143809e-30, - 1.7908295924670243e-29, - -7.073499368795134e-27, - 5.6187259819083295e-27, - -2.0666865847138868e-26 + 4.98077532946859e-29, + 1.5669505417959045e-29, + -2.6063442216070545e-30, + 1.3704317463740436e-30, + -4.725392909182312e-30, + -2.2822782861284537e-30 ], [ - 6.419343182143446e-30, - 3.051760893870683e-29, - 4.68511451162592e-29, - 1.5261835153152037e-27, - -5.226262008292569e-28, - -1.103919177657209e-26 + 1.566950541795822e-29, + 1.356557941666176e-29, + -1.6794738460725616e-29, + 2.9388553078303738e-30, + -1.4354899092906991e-30, + 2.7388681044307003e-30 ], [ - 1.7908295924670055e-29, - 4.685114511625924e-29, - 2.0846170216876133e-28, - 6.842689966147899e-29, - 3.484907360650631e-27, - -3.678530361558646e-26 + -2.6063442215968667e-30, + -1.6794738460732272e-29, + 1.3269273125293006e-28, + -1.0933225984983171e-29, + -8.214578226915152e-30, + -2.6695766121462166e-29 ], [ - -7.073499368795157e-27, - 1.5261835153151694e-27, - 6.842689966146321e-29, - 8.882557859237887e-25, - -4.5534571307576935e-25, - 1.9082917888723267e-24 + 1.370431746373238e-30, + 2.9388553078308247e-30, + -1.0933225984982319e-29, + 1.2365300431408576e-30, + 4.625717492808519e-31, + 2.5878308104903124e-30 ], [ - 5.618725981908361e-27, - -5.226262008292345e-28, - 3.484907360650649e-27, - -4.553457130757711e-25, - 6.148749838486226e-25, - -9.837708583024273e-25 + -4.7253929091830566e-30, + -1.4354899092901388e-30, + -8.214578226916122e-30, + 4.625717492809888e-31, + 1.2042707994264927e-30, + 2.2588627193514912e-30 ], [ - -2.0666865847138762e-26, - -1.1039191776572181e-26, - -3.678530361558645e-26, - 1.9082917888723113e-24, - -9.837708583024117e-25, - 1.3630824927229218e-23 + -2.282278286130713e-30, + 2.7388681044323174e-30, + -2.6695766121464453e-29, + 2.5878308104906743e-30, + 2.2588627193514506e-30, + 7.612587003080338e-30 ] ], "parameter_std": { "rvec_std_deg": [ - 5.322532023987312e-13, - 3.1651761469334046e-13, - 8.272480883107961e-13 + 4.043627193444188e-13, + 2.1102883748579442e-13, + 6.60003439958854e-13 ], "tvec_std_m": [ - 9.424732282265575e-13, - 7.841396456299239e-13, - 3.691994708450869e-12 + 1.1119937244161306e-15, + 1.0973927279814154e-15, + 2.7590916989256335e-15 ] }, "camera_center_std_m": [ - 6.236013873929964e-12, - 5.578343371266709e-12, - 2.895045264319711e-12 + 6.609895593967079e-15, + 5.572407428023946e-15, + 4.532315948778389e-15 ], "camera_center_std_mm": [ - 6.2360138739299636e-09, - 5.578343371266708e-09, - 2.8950452643197107e-09 + 6.609895593967079e-12, + 5.5724074280239455e-12, + 4.5323159487783894e-12 ], "orientation_std_deg": { - "roll": 4.550535817991357e-13, - "pitch": 4.763282335043431e-13, - "yaw": 1.775861640110364e-13 + "roll": 4.593062572697299e-13, + "pitch": 4.604301919561157e-13, + "yaw": 1.6845365562674818e-13 } } },