好像我对旋转向量的理解弄错了
# 转旋转矩阵 rotation_matrix, _ = cv2.Rodrigues(rvecs[i]) print("旋转矩阵:\n", rotation_matrix) te = tfs.euler.mat2euler(rotation_matrix) euler = [math.degrees(e) for e in te] print(f"旋转: \n{euler}") # 旋转矩阵: # [[-0.98433795 -0.17557593 -0.01587109] # [-0.17612344 0.98333823 0.04501615] # [ 0.0077029 0.04710638 -0.99886018]] # 旋转: # [177.2999241238412, -0.44134783830292884, -169.8556541200813]这么操作后计算的手眼标定结果和ros_aruco一样,但角度还是不太一样
x= -0.3206890278648447 y= 0.9433653592637539 z= 0.01836774839137613 w= 0.08296367980809832 q = [w, x, y, z] m = tfs.quaternions.quat2mat(q) print(m) e = tfs.euler.mat2euler(m) print(e) d = [math.degrees(i) for i in e] print(d) # [[-0.78055115 -0.60810155 0.14474945] # [-0.60200613 0.79364235 0.08786608] # [-0.16831079 -0.01855609 -0.98555931]] # (-3.1227669003410075, 0.16911576446501436, -2.4846248148191847) # [-178.92136379268987, 9.689619552973825, -142.358515562613]