scipy.spatial.transform.Rotation.

as_mrp#

Вращение.as_mrp(self)#

Представить как модифицированные параметры Родригеса (MRPs).

MRPs — это трехмерный вектор, сонаправленный с осью вращения, величина которого равна tan(theta / 4), где theta это угол поворота (в радианах) [1].

MRP имеют сингулярность при 360 градусах, которую можно избежать, гарантируя, что угол вращения не превышает 180 градусов, т.е. меняя направление вращения, когда оно превышает 180 градусов. Эта функция всегда будет возвращать MRP, соответствующие вращению менее или равному 180 градусам.

Возвращает:
mrpsndarray, форма (3,) или (N, 3)

Форма зависит от формы входных данных, использованных для инициализации.

Примечания

Добавлено в версии 1.6.0.

Ссылки

[1]

Шустер, М. Д. «Обзор представлений ориентации», Журнал астронавтических наук, том 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)