mindsponge.common.quat_to_rot

mindsponge.common.quat_to_rot(normalized_quat, use_numpy=False)[源代码]

将四元数转化为旋转矩阵。

\[\begin{split}\begin{split} &xx = 1 - 2 * y * y - 2 * z * z \\ &xy = 2 * x * y + 2 * w * z \\ &xz = 2 * x * z - 2 * w * y \\ &yx = 2 * x * y - 2 * w * z \\ &yy = 1 - 2 * x * x - 2 * z * z \\ &yz = 2 * z * y + 2 * w * x \\ &zx = 2 * x * z + 2 * w * y \\ &zy = 2 * y * z - 2 * w * x \\ &zz = 1 - 2 * x * x - 2 * y * y \\ \end{split}\end{split}\]
参数:
  • normalized_quat (tensor) - 归一化的四元数,shape为 \((N_{res}, 4)\)

  • use_numpy (bool) - 是否使用numpy计算,默认值:False。

返回:

旋转矩阵(tuple), \((xx, xy, xz, yx, yy, yz, zx, zy, zz)\) , 每个元素shape \((N_{res}, )\)

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> import mindspore as ms
>>> from mindspore import Tensor
>>> from mindsponge.common.geometry import quat_to_rot
>>> input_0 = Tensor(np.ones((256, 4)), ms.float32)
>>> output = quat_to_rot(input_0)
>>> print(len(output), output[0].shape)
9, (256,)