- 姿态转换
- 安装
tfs
pip install transforms3d -i https://pypi.tuna.tsinghua.edu.cn/simpleTip
匹配顺序:欧拉角 >> 四元数 >> 轴角 >> 旋转矩阵
- 欧拉角
euler- 四元数:
euler2quat/quat2euler - 轴角:
euler2axangle/axangle2euler - 旋转矩阵:
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弧度
- 四元数
quaternions- 轴角:
quat2axangle/axangle2quat - 旋转矩阵:
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.]]))- 轴角
axangle- 旋转矩阵:
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.]]))