nv-tlabs / ASE

Other
764 stars 122 forks source link

fixed incorrect conversion from rotation matrix to quaternion #73

Open chaojie-fu opened 6 months ago

chaojie-fu commented 6 months ago

assigning signs to x, y, z and w was executed multiple times in function quat_from_rotation_matrix, which is inconsistent with that was described in reference (http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/teche52.html). And it made the conversion incorrect.

For example, for rotation matrix [[-0.87, -0.50, 0.00], [0.00, 0.00, 1.00], [-0.50, 0.87, 0.00]], the corresponding quatenion is [0.18, 0.68, 0.68, -0.18] ([w, x, y, z]), while the function gives [0.18, 0.68, 0.68, 0.18].