File size: 902 Bytes
a5c5b03 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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(" ")
|