scipy.spatial.transform.Rotation.
as_mrp#
- Rotation.as_mrp(self)#
表示为修正罗德里格斯参数(MRPs)。
MRPs 是一个与旋转轴同方向的三维向量,其大小等于
tan(theta / 4)
,其中theta
是旋转角度(以弧度为单位)[Raa93c7dfddad-1]_。MRPs 在 360 度处有一个奇点,可以通过确保旋转角度不超过 180 度来避免,即在超过 180 度时切换旋转方向。此函数将始终返回对应于小于或等于 180 度旋转的 MRPs。
- 返回:
- mrpsndarray, 形状 (3,) 或 (N, 3)
形状取决于用于初始化的输入的形状。
注释
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_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)