scipy.spatial.transform.RigidTransform.

from_dual_quat#

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

从单位对偶四元数初始化。

单位对偶四元数将方向编码为实单位四元数,并将平移编码为对偶四元数。存在双重覆盖,即单位对偶四元数 q 和 -q 表示相同的变换。

单位对偶四元数必须具有范数为 1 的实四元数和与实四元数正交的对偶四元数,以满足单位范数约束。此函数将通过归一化来强制执行这两个属性。

参数:
dual_quat类数组,形状 (N, 8) 或 (8,)

单个单位对偶四元数或一堆单位对偶四元数。实部存储在前四个分量中,对偶部存储在后四个分量中。

scalar_firstbool,可选

标量分量在表示实部和对偶部的两个单独的四元数中是第一个还是最后一个。 默认值为 False,即使用标量最后顺序。

返回值:
transformRigidTransform 实例

单个变换或一堆变换。

示例

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

从单个单位对偶四元数创建

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