scipy.spatial.transform.Rotation.
as_mrp#
- Rotation.as_mrp(self)#
表示为修正的罗德里格斯参数 (MRPs)。
MRPs 是一个三维向量,其方向与旋转轴一致,大小等于
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)