scipy.spatial.transform.Rotation.as_mrp

Rotation.as_mrp()

表示为修正的罗德里格斯参数(MRP)。

MRP是与旋转轴同向的三维矢量,其大小等于 tan(theta / 4) ,在哪里 theta 是旋转角度(以弧度为单位) [1].

MRP在360度有一个奇点,可以通过确保旋转角度不超过180度,即当旋转超过180度时改变旋转方向来避免。此函数将始终返回对应于小于或等于180度旋转的MRP。

退货
mrpsndarray,形状(3,)或(N,3)

形状取决于用于初始化的输入的形状。

注意事项

1.6.0 新版功能.

参考文献

1

医学博士舒斯特“态度表征的调查”,“宇航科学杂志”,第41卷,第4期,1993年,第475-476页。

示例

>>> from scipy.spatial.transform import Rotation as R

表示单次旋转:

>>> 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)