ROS系列——使用python的transforms3d、numpy库实现四元数、旋转矩阵、欧拉角、轴角等的相互转换

本文介绍了如何使用Python的transforms3d和numpy库进行四元数、旋转矩阵、欧拉角以及轴角之间的相互转换,包括四元数转旋转矩阵、旋转矩阵转四元数、四元数转轴角、轴角转四元数、欧拉角转四元数、四元数转欧拉角、欧拉角转旋转矩阵、旋转矩阵转欧拉角以及欧拉角与轴角的转换方法。
该文章已生成可运行项目,

1.说明

1.1安装

pip3 install transforms3d

2.四元数相关转换

四元数模块在transforms3d.quaternions里,直接导入即可使用

import transforms3d as tfs
import numpy as np 

2.1 四元数与旋转矩阵互转

2.1.1四元数转旋转矩阵

tfs.quaternions.quat2mat([1,0,0,0])

2.1.2 旋转矩阵转四元数

tfs.quaternions.mat2quat(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]))

2.2 四元数与轴角互转

2.2.1 四元数转轴角

tfs.quaternions.quat2axangle([1,0,0,0])

2.2.2 轴角转四元数

tfs.quaternions.axangle2quat([1,0,0],0.5)

3.欧拉角相关转换

四元数模块在transforms3d.euler里,直接导入即可使用

import transforms3d as tfs
import numpy as np 

3.1 欧拉角与四元数互转

3.1.1 固定轴欧拉角转四元数

tfs.euler.euler2quat(0,0,0,"sxyz")

3.1.2 四元数转固定轴欧拉角

tfs.euler.quat2euler([1,0,0,0],"sxyz")

3.2 欧拉角与旋转矩阵互转

3.2.1 固定轴欧拉角转旋转矩阵

tfs.euler.euler2mat(0,0,0,"sxyz")

3.2.2 旋转矩阵转固定轴欧拉角

tfs.euler.mat2euler(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]),"sxyz")

3.3 欧拉角与轴角互转

3.3.1 固定轴欧拉角轴角

tfs.euler.euler2axangle(0,0,0,"sxyz")

3.3.2轴角转固定轴欧拉角

tfs.euler.axangle2euler([1,0,0],0.5,"sxyz")

4.轴角相关转换

四元数模块在transforms3d.axangle里,直接导入即可使用

4.1 轴角与旋转矩阵互转

4.1.1 轴角转旋转矩阵

tfs.axangles.axangle2mat([1,0,0],0.5)

4.1.2 旋转矩阵转轴角

tfs.axangles.mat2axangle(np.asarray([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]]))
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值