scipy.spatial.transform.Rotation.

from_mrp#

метод класса Вращение.from_mrp(cls, mrp)#

Инициализация из модифицированных параметров Родригеса (MRPs).

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

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

Параметры:
mrparray_like, форма (N, 3) или (3,)

Один вектор или набор векторов, где mrp[i] дает i-й набор MRP.

Возвращает:
вращениеRotation экземпляр

Объект, содержащий вращения, представленные входными MRPs.

Примечания

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

Ссылки

[1]

Шустер, М. Д. «Обзор представлений ориентации», Журнал астронавтических наук, том 41, №4, 1993, стр. 475-476

Примеры

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

Инициализация одиночного вращения:

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