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:
- transform
RigidTransformInstanz Eine einzelne Transformation oder ein Stapel von Transformationen.
- transform
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