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)