Scipy Rotvec到Extrinsic Euler

ghg1uchk  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个刚体的旋转轴角格式,并希望恢复身体的偏航在全球框架(外在)。我使用scipy Rotations模块如下:

from scipy.spatial.transform import Rotation

axis_angle = #some axis * angle vector
r = Rotation.from_rotvec(axis_angle)

字符串
但是,我不确定是否:

yaw, _, _  = r.as_euler('zyx')

# or 

_, _, yaw = r.as_euler('zyx')


作为后续,如果我正在寻找内在的旋转,索引会改变吗?例如。

_, _, yaw = r.as_euler('ZYX')


谢谢你,谢谢

nhn9ugyo

nhn9ugyo1#

Angular 的顺序与指定轴序列的顺序相匹配。

In [31]: from scipy.spatial.transform import Rotation as R

In [32]: R.from_euler('Z', 45, degrees=True).as_euler('zyx', degrees=True)
Out[32]: array([45.,  0.,  0.])

In [33]: R.from_euler('Z', 45, degrees=True).as_euler('ZYX', degrees=True)
Out[33]: array([45.,  0.,  0.])

In [34]: R.from_euler('Y', 45, degrees=True).as_euler('ZYX', degrees=True)
Out[34]: array([ 0., 45.,  0.])

In [35]: R.from_euler('X', 45, degrees=True).as_euler('ZYX', degrees=True)
Out[35]: array([ 0.,  0., 45.])

In [36]: R.from_euler('X', 45, degrees=True).as_euler('zyx', degrees=True)
Out[36]: array([ 0.,  0., 45.])

字符串
我在Scipy文档中找不到任何地方明确指出Angular 的顺序与轴序列的顺序相匹配。我不确定这是一个主要的缺陷:它们匹配似乎是合理的。

相关问题