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。
- 回傳值:
- rotation
Rotation
實例 包含輸入 MRPs 所表示旋轉的物件。
- rotation
註解
在 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)