经过一些研究,到目前为止,我了解到scipy有右手轴坐标系和左手旋转。
例如
from scipy.spatial.transform import Rotation as R
np.array([0,1,0]) @ R.from_euler("XYZ", [0,0,30], degrees=True).as_matrix() # should be [0.5,sqrt(3)/2,0]但是我不知道extrinsic和intrinsic旋转有什么不同。
据我所知。
extrinsic应该使用固定的轴,而intrinsic应该使用可旋转的轴。
所以,如果我理解正确的话。
这里的"XYZ“指的是intrinsic rotation,你可以在official doc上找到它。
# should be [-0.5,sqrt(3)/2,-1]
# But it is [0.5,sqrt(3)/2,-1], seems like the `extrinsic rotation`
np.array([0,1,1]) @ R.from_euler("YZX", [180,30,0], degrees=True).as_matrix()
# should be [0.5,sqrt(3)/2,-1]
# But it is [-0.5,sqrt(3)/2,-1], seems like the `intrinsic rotation`
np.array([0,1,1]) @ R.from_euler("yzx", [180,30,0], degrees=True).as_matrix()我是不是误解了?
发布于 2021-11-23 12:43:00
抱歉,这是个愚蠢的问题。
是我的错。
它应该在左边乘以旋转。
R.from_euler("YZX", [180,30,0], degrees=True).as_matrix() @ np.array([0,1,1])https://stackoverflow.com/questions/70061831
复制相似问题