scipy.spatial.transform.Rotation.

from_mrp#

classmethod Rotation.from_mrp(cls, mrp)#

Initialisierung aus Modified Rodrigues Parametern (MRPs).

MRPs sind ein 3-dimensionale Vektor, der in Richtung der Rotationsachse zeigt und dessen Betrag gleich tan(theta / 4) ist, wobei theta der Rotationswinkel (in Radiant) ist [1].

MRPs haben eine Singularität bei 360 Grad, die vermieden werden kann, indem sichergestellt wird, dass der Rotationswinkel 180 Grad nicht überschreitet, d. h. die Rotationsrichtung umkehrt, wenn sie über 180 Grad liegt.

Parameter:
mrparray_like, Form (N, 3) oder (3,)

Ein einzelner Vektor oder ein Stapel von Vektoren, wobei mrp[i] den i-ten Satz von MRPs angibt.

Rückgabe:
rotationRotation Instanz

Objekt, das die durch die Eingabe-MRPs dargestellten Rotationen enthält.

Hinweise

Hinzugefügt in Version 1.6.0.

Referenzen

[1]

Shuster, M. D. „A Survey of Attitude Representations“, The Journal of Astronautical Sciences, Vol. 41, No.4, 1993, S. 475-476

Beispiele

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

Initialisierung einer einzelnen Rotation

>>> r = R.from_mrp([0, 0, 1])
>>> r.as_euler('xyz', degrees=True)
array([0.        , 0.        , 180.      ])
>>> r.as_euler('xyz').shape
(3,)

Initialisierung mehrerer Rotationen in einem Objekt

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

Es ist auch möglich, einen Stapel einer einzelnen Rotation zu haben

>>> r = R.from_mrp([[0, 0, np.pi/2]])
>>> r.as_euler('xyz').shape
(1, 3)