scipy.spatial.transform.Rotation.
from_mrp#
- classmethod Rotation.from_mrp(cls, mrp)#
从修正罗德里格斯参数 (MRPs) 初始化。
MRPs 是一个与旋转轴同方向的三维向量,其大小等于
tan(theta / 4)
,其中theta
是旋转角度(以弧度为单位)[R150ce7b75934-1]_。MRPs 在 360 度处有一个奇点,可以通过确保旋转角度不超过 180 度来避免,即当旋转超过 180 度时改变旋转方向。
- 参数:
- mrparray_like, 形状 (N, 3) 或 (3,)
一个单一的向量或一组向量,其中 mrp[i] 给出第 i 组 MRPs。
- 返回:
- 旋转 :
Rotation
实例旋转实例 包含由输入MRP表示的旋转的对象。
- 旋转 :
注释
Added in version 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)