scipy.spatial.transform.Rotation.from_quat

Rotation.from_quat()

从四元数初始化。

3D旋转可以使用单位范数四元数表示 [1].

参数
quat类阵列,形状(N,4)或(4,)

每行都是最后标量(x,y,z,w)格式的四元数(可能是非单位范数)。每个四元数将被归一化为单位范数。

退货
旋转Rotation 实例循环实例

对象,该对象包含由输入四元数表示的旋转。

参考文献

1

https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

示例

>>> from scipy.spatial.transform import Rotation as R

初始化单个旋转:

>>> r = R.from_quat([1, 0, 0, 0])
>>> r.as_quat()
array([1., 0., 0., 0.])
>>> r.as_quat().shape
(4,)

初始化单个对象中的多个旋转:

>>> r = R.from_quat([
... [1, 0, 0, 0],
... [0, 0, 0, 1]
... ])
>>> r.as_quat()
array([[1., 0., 0., 0.],
       [0., 0., 0., 1.]])
>>> r.as_quat().shape
(2, 4)

也可以具有单次旋转的堆栈:

>>> r = R.from_quat([[0, 0, 0, 1]])
>>> r.as_quat()
array([[0., 0., 0., 1.]])
>>> r.as_quat().shape
(1, 4)

四元数在初始化之前被规格化。

>>> r = R.from_quat([0, 0, 1, 1])
>>> r.as_quat()
array([0.        , 0.        , 0.70710678, 0.70710678])