scipy.spatial.transform.Rotation.
from_mrp#
- classmethod Rotation.from_mrp(cls, mrp)#
从修正罗德里格斯参数 (MRP) 初始化。
MRP 是一个 3 维向量,与旋转轴共线,其大小等于
tan(theta / 4)
,其中theta
是旋转角度(以弧度为单位)[1].MRP 在 360 度时存在奇点,可以通过确保旋转角度不超过 180 度来避免,即在旋转角度超过 180 度时切换旋转方向。
- 参数:
- mrparray_like,形状为 (N, 3) 或 (3,)
单个向量或向量堆栈,其中 mrp[i] 给出第 i 组 MRP。
- 返回:
- rotation
Rotation
实例 包含输入 MRP 所表示的旋转的对象。
- rotation
备注
在版本 1.6.0 中添加。
参考文献
[1]Shuster, M. D. “A Survey of Attitude Representations”, The Journal of Astronautical Sciences, Vol. 41, No.4, 1993, pp. 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)