提问人:maplemilk 提问时间:7/22/2023 更新时间:7/23/2023 访问量:68
Scipy Rotvec 到 Extrinsic Euler
Scipy Rotvec to Extrinsic Euler
问:
我有轴角度格式的刚体旋转,并想在全局坐标系(外在)中恢复主体的偏航。我使用 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')
谢谢!
答:
1赞
Rory Yorke
7/23/2023
#1
角度的顺序与指定轴序列的顺序相匹配。
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 文档中找不到明确指出角度顺序与轴序列顺序匹配的任何地方。我不确定这是一个主要缺陷:它们匹配似乎是合理的。
评论