栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python中 欧拉角<

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python中 欧拉角<

本来想使用ROS中 tf 进行姿态角表示方式的转换 但是 ubuntu 版本是 16.04 仅支持ROS自带的 python2.7的tf库 然而我需要使用python3.7的程序 折腾了一会儿 没有成功安装双版本的tf 准备直接使用 scipy 来实现 欧拉角 – 四元数 – 旋转矩阵 的相互转化。

conda 切换到目标环境后 安装 scipy

pip install scipy

演示一个小程序

import numpy as np 
from scipy.spatial.transform import Rotation as R
Rmatrix R.from_euler( zyx ,[np.pi/2,0,0])
print(Rmatrix.as_matrix())
print(Rmatrix.as_euler( zyx ))

输出

[[ 2.22044605e-16 -1.00000000e 00 0.00000000e 00]
 [ 1.00000000e 00 2.22044605e-16 0.00000000e 00]
 [ 0.00000000e 00 0.00000000e 00 1.00000000e 00]]
[1.57079633 0. 0. ]

根据上述程序可以得出以下结论

程序参数默认是 弧度制 如果想使用角度制 需要设置 degrees True欧拉角的输入顺序与 参数 ‘zyx’ 相匹配 第一个角度是绕 z 轴旋转的 第二个角度是绕 y 轴旋转的 第三个角度是绕 x 轴旋转的 四元数- 欧拉角
MyEuler R.from_quat([1, 0, 0, 0]).as_euler( zyx )
print(MyEuler)
[0. 0. 3.14159265]
欧拉角- 四元数
MyQuat R.from_euler( zyx ,[np.pi/2,0,0]).as_quat()
print(MyQuat)
[0. 0. 0.70710678 0.70710678]
欧拉角- 旋转矩阵
MyRot R.from_euler( zyx ,[np.pi/2,0,0])
print(MyRot)
[[ 2.22044605e-16 -1.00000000e 00 0.00000000e 00]
 [ 1.00000000e 00 2.22044605e-16 0.00000000e 00]
 [ 0.00000000e 00 0.00000000e 00 1.00000000e 00]]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号