Yyezhenhuiinit
297fea2a创建于 2024年2月2日历史提交
import numpy as np
import torch
import math
import numba
from scipy.spatial.transform import Rotation as R

def euler2quaterion(euler, use_radian=True):
    """
    euler: np.array, [batch, 3]
    return: the quaterion, np.array, [batch, 4]
    """
    r = R.from_euler('xyz',euler, degrees=not use_radian)
    return r.as_quat()

def quaterion2euler(quat, use_radian=True):
    """
    quat: np.array, [batch, 4]
    return: the euler, np.array, [batch, 3]
    """
    r = R.from_quat(quat)
    return r.as_euler('xyz', degrees=not use_radian)

def rot2quaterion(rot):
    r = R.from_matrix(rot)
    return r.as_quat()

def quaterion2rot(quat):
    r = R.from_quat(quat)
    return r.as_matrix()

if __name__ == '__main__':
    euler = np.array([89.999,89.999,89.999] * 100).reshape([100,3])
    q = euler2quaterion(euler, use_radian=False)
    e = quaterion2euler(q, use_radian=False)
    print(" ")