scipy.spatial.transform.Rotation.

from_mrp#

classmethod Rotation.from_mrp(cls, mrp)#

从修正罗德里格斯参数 (MRPs) 初始化。

MRPs 是一个与旋转轴同方向的三维向量,其大小等于 tan(theta / 4),其中 theta 是旋转角度(以弧度为单位)[R150ce7b75934-1]_。

MRPs 在 360 度处有一个奇点,可以通过确保旋转角度不超过 180 度来避免,即当旋转超过 180 度时改变旋转方向。

参数:
mrparray_like, 形状 (N, 3) 或 (3,)

一个单一的向量或一组向量,其中 mrp[i] 给出第 i 组 MRPs。

返回:
旋转 : Rotation 实例旋转实例

包含由输入MRP表示的旋转的对象。

注释

Added in version 1.6.0.

参考文献

[1]

Shuster, M. D. “姿态表示方法综述”, 《宇航科学杂志》, 第41卷, 第4期, 1993年, 第475-476页

示例

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

初始化单次旋转:

>>> r = R.from_mrp([0, 0, 1])
>>> r.as_euler('xyz', degrees=True)
array([0.        , 0.        , 180.      ])
>>> r.as_euler('xyz').shape
(3,)

在一个对象中初始化多个旋转:

>>> r = R.from_mrp([
... [0, 0, 1],
... [1, 0, 0]])
>>> r.as_euler('xyz', degrees=True)
array([[0.        , 0.        , 180.      ],
       [180.0     , 0.        , 0.        ]])
>>> r.as_euler('xyz').shape
(2, 3)

也可以有一个单一旋转的堆栈:

>>> r = R.from_mrp([[0, 0, np.pi/2]])
>>> r.as_euler('xyz').shape
(1, 3)