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. “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_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)