refactored

This commit is contained in:
2025-11-28 18:49:48 +01:00
parent a6589d43ac
commit a3d7e013b5
17 changed files with 53 additions and 3 deletions
View File
+27
View File
@@ -0,0 +1,27 @@
import numpy as np
import cv2 as cv
import math
def rotation_matrix_to_euler_angles(R):
sy = math.sqrt(R[0,0]**2 + R[1,0]**2)
singular = sy < 1e-6
if not singular:
x = math.atan2(R[2,1] , R[2,2])
y = math.atan2(-R[2,0], sy)
z = math.atan2(R[1,0], R[0,0])
else:
# Handle singularity
x = math.atan2(-R[1,2], R[1,1])
y = math.atan2(-R[2,0], sy)
z = 0
return np.array([x, y, z])
def to_board_pose_euler(r_vec, t_vec):
r_mat = np.ndarray((3, 3))
cv.Rodrigues(r_vec, r_mat)
r_mat = np.hstack((r_mat, t_vec))
r_mat = np.vstack((r_mat, np.array([0, 0, 0, 1])))
r_mat = np.linalg.inv(r_mat)
res = rotation_matrix_to_euler_angles(r_mat)
return res, r_mat[:,3]
+25
View File
@@ -0,0 +1,25 @@
import cv2
ARUCO_DICT = {
"DICT_4X4_50": cv2.aruco.DICT_4X4_50,
"DICT_4X4_100": cv2.aruco.DICT_4X4_100,
"DICT_4X4_250": cv2.aruco.DICT_4X4_250,
"DICT_4X4_1000": cv2.aruco.DICT_4X4_1000,
"DICT_5X5_50": cv2.aruco.DICT_5X5_50,
"DICT_5X5_100": cv2.aruco.DICT_5X5_100,
"DICT_5X5_250": cv2.aruco.DICT_5X5_250,
"DICT_5X5_1000": cv2.aruco.DICT_5X5_1000,
"DICT_6X6_50": cv2.aruco.DICT_6X6_50,
"DICT_6X6_100": cv2.aruco.DICT_6X6_100,
"DICT_6X6_250": cv2.aruco.DICT_6X6_250,
"DICT_6X6_1000": cv2.aruco.DICT_6X6_1000,
"DICT_7X7_50": cv2.aruco.DICT_7X7_50,
"DICT_7X7_100": cv2.aruco.DICT_7X7_100,
"DICT_7X7_250": cv2.aruco.DICT_7X7_250,
"DICT_7X7_1000": cv2.aruco.DICT_7X7_1000,
"DICT_ARUCO_ORIGINAL": cv2.aruco.DICT_ARUCO_ORIGINAL,
"DICT_APRILTAG_16h5": cv2.aruco.DICT_APRILTAG_16h5,
"DICT_APRILTAG_25h9": cv2.aruco.DICT_APRILTAG_25h9,
"DICT_APRILTAG_36h10": cv2.aruco.DICT_APRILTAG_36h10,
"DICT_APRILTAG_36h11": cv2.aruco.DICT_APRILTAG_36h11
}
View File
+1 -3
View File
@@ -19,6 +19,4 @@ dependencies = [
readme = "README.md"
[tool.setuptools]
py-modules = [
'ar_tag_pose_aruco_board', 'ar_tag_pose', 'aruco_detect', 'cam_pose_charuco_diamond', 'aruco_types', 'ar_tag_pose_charuco_board', 'cam_calib_checker', 'cam_pose_checker', 'cam_pose_aruco', 'aruco_gen', 'utils', 'cam_pose_charuco_board', 'cam_pose_aruco_board'
]
py-modules = ['ar_tag_pose/*']