as_mrp#
- Rotation.as_mrp(self)#
Als Modifizierte Rodrigues-Parameter (MRPs) darstellen.
MRPs sind ein 3-dimensionaler Vektor, der ko-direktional zur Rotationsachse ist und dessen Betrag gleich
tan(theta / 4)ist, wobeithetader 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 Richtung der Rotation umgekehrt wird, wenn sie über 180 Grad liegt. Diese Funktion gibt immer MRPs zurück, die einer Rotation von maximal 180 Grad entsprechen.
- Rückgabe:
- mrpsndarray, Form (3,) oder (N, 3)
Die Form hängt von der Form der bei der Initialisierung verwendeten Eingaben ab.
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
Eine einzelne Rotation darstellen
>>> r = R.from_rotvec([0, 0, np.pi]) >>> r.as_mrp() array([0. , 0. , 1. ]) >>> r.as_mrp().shape (3,)
Einen Stapel mit einer einzelnen Rotation darstellen
>>> r = R.from_euler('xyz', [[180, 0, 0]], degrees=True) >>> r.as_mrp() array([[1. , 0. , 0. ]]) >>> r.as_mrp().shape (1, 3)
Mehrere Rotationen darstellen
>>> 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)