1. 姿态转换
  2. 安装 tfs
pip install transforms3d -i https://pypi.tuna.tsinghua.edu.cn/simple

Tip

匹配顺序:欧拉角 >> 四元数 >> 轴角 >> 旋转矩阵

  1. 欧拉角 euler
    1. 四元数:euler2quat / quat2euler
    2. 轴角:euler2axangle / axangle2euler
    3. 旋转矩阵:euler2mat / mat2euler
import transforms3d as tfs
import numpy as np 
 
# 固定轴欧拉角转四元数
tfs.euler.euler2quat(0,0,0,"sxyz")
# 四元数转固定轴欧拉角
tfs.euler.quat2euler([1,0,0,0],"sxyz")
 
# 固定轴欧拉角轴角 
tfs.euler.euler2axangle(0,0,0,"sxyz") 
# 轴角转固定轴欧拉角 
tfs.euler.axangle2euler([1,0,0],0.5,"sxyz")
 
# 固定轴欧拉角转旋转矩阵 
tfs.euler.euler2mat(0,0,0,"sxyz") 
# 旋转矩阵转固定轴欧拉角 
tfs.euler.mat2euler(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]),"sxyz")

Info

"sxyz"s 表示固定轴旋转,r 表示自身坐标系旋转

0.5 表示 0.5弧度

  1. 四元数 quaternions
    1. 轴角:quat2axangle / axangle2quat
    2. 旋转矩阵:quat2mat / mat2quat
import transforms3d as tfs
import numpy as np 
 
# 四元数转旋轴角 
tfs.quaternions.quat2axangle([1,0,0,0]) 
# 轴角转四元数 
tfs.quaternions.axangle2quat([1,0,0],0.5)
 
# 四元数转旋转矩阵
tfs.quaternions.quat2mat([1,0,0,0])
# 旋转矩阵转四元数
tfs.quaternions.mat2quat(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]))
  1. 轴角 axangle
    1. 旋转矩阵:axangle2mat / mat2axangle
import transforms3d as tfs
import numpy as np 
 
# 轴角转旋转矩阵
tfs.axangles.axangle2mat([1,0,0],0.5)
# 旋转矩阵转轴角
tfs.axangles.mat2axangle(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]))