scipy.spatial.transform.RigidTransform.

from_dual_quat#

classmethod RigidTransform.from_dual_quat(cls, dual_quat, *, scalar_first=False)#

Initialisierung aus einem Einheits-Dualquaternion.

Einheits-Dualquaternione kodieren die Orientierung in einem reellen Einheitsquaternion und die Translation in einem Dualquaternion. Es gibt eine Doppeldeckung, d. h. die Einheits-Dualquaternion q und -q repräsentieren dieselbe Transformation.

Einheits-Dualquaternionen müssen ein reelles Quaternion mit Einheitsnorm und ein Dualquaternion, das orthogonal zum reellen Quaternion ist, haben, um die Einheitsnorm-Bedingung zu erfüllen. Diese Funktion erzwingt beide Eigenschaften durch Normalisierung.

Parameter:
dual_quatarray_like, Form (N, 8) oder (8,)

Ein einzelnes Einheits-Dualquaternion oder ein Stapel von Einheits-Dualquaternionen. Der reelle Teil ist in den ersten vier Komponenten und der duale Teil in den letzten vier Komponenten gespeichert.

scalar_firstbool, optional

Ob die Skalar-Komponente in den beiden einzelnen Quaternionen, die den reellen und den dualen Teil repräsentieren, zuerst oder zuletzt steht. Standard ist False, d. h. die Skalar-zuletzt-Reihenfolge wird verwendet.

Rückgabe:
transformRigidTransform Instanz

Eine einzelne Transformation oder ein Stapel von Transformationen.

Beispiele

>>> from scipy.spatial.transform import RigidTransform as Tf
>>> import numpy as np

Erstellung aus einem einzelnen Einheits-Dualquaternion

>>> tf = Tf.from_dual_quat([
...     0.0617101, -0.06483886, 0.31432811, 0.94508498,
...     0.04985168, -0.26119618, 0.1691491, -0.07743254])
>>> tf.as_matrix()
array([[0.79398752, -0.60213598, -0.08376202, 0.24605262],
       [0.58613113, 0.79477941, -0.15740392, -0.4932833],
       [0.16135089, 0.07588122, 0.98397557, 0.34262676],
       [0., 0., 0., 1.]])
>>> tf.single
True