scipy.spatial.transform.Rotation.

from_mrp#

classmethod Rotation.from_mrp(cls, mrp)#

從修正羅德里格參數 (MRPs) 初始化。

MRPs 是一個 3 維向量,方向與旋轉軸同向,其大小等於 tan(theta / 4),其中 theta 是旋轉角度(以弧度為單位) [1]

MRPs 在 360 度時有一個奇異點,可以透過確保旋轉角度不超過 180 度來避免,亦即當超過 180 度時切換旋轉方向。

參數:
mrparray_like,形狀為 (N, 3) 或 (3,)

單個向量或向量堆疊,其中 mrp[i] 給出第 i 組 MRPs。

回傳值:
rotationRotation 實例

包含輸入 MRPs 所表示旋轉的物件。

註解

在 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)