scipy.spatial.transform.Rotation.from_mrp

Rotation.from_mrp()

根据修改的罗德里格斯参数(MRP)进行初始化。

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

MRP在360度有一个奇点,可以通过确保旋转角度不超过180度,即当旋转超过180度时改变旋转方向来避免。

参数
mrp类阵列,形状(N,3)或(3,)

单个矢量或一堆矢量,其中 mrp[i] 给出了第i组MRP。

退货
旋转Rotation 实例循环实例

对象,该对象包含由输入MRP表示的旋转。

注意事项

1.6.0 新版功能.

参考文献

1

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

示例

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

初始化单个旋转:

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