scipy.spatial.transform.Rotation.

as_mrp#

Rotation.as_mrp(self)#

表示為修正羅德里格參數 (MRPs)。

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

MRPs 在 360 度時有一個奇異點,可以通過確保旋轉角度不超過 180 度來避免,即當旋轉超過 180 度時切換旋轉方向。此函數將始終返回對應於小於或等於 180 度旋轉的 MRPs。

返回:
mrpsndarray,形狀 (3,) 或 (N, 3)

形狀取決於用於初始化的輸入形狀。

註解

在 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_rotvec([0, 0, np.pi])
>>> r.as_mrp()
array([0.        , 0.        , 1.         ])
>>> r.as_mrp().shape
(3,)

表示具有單次旋轉的堆疊

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

表示多次旋轉

>>> r = R.from_rotvec([[np.pi/2, 0, 0], [0, 0, np.pi/2]])
>>> r.as_mrp()
array([[0.41421356, 0.        , 0.        ],
       [0.        , 0.        , 0.41421356]])
>>> r.as_mrp().shape
(2, 3)