python_四元数/旋转矩阵/欧拉角之间的相互变换(简单易用版)
都在代码里.
import numpy as np
import math
from scipy.spatial.transform import Rotation as RRq=[-0.71934025092983234, 1.876085535681999e-06, 3.274841213980097e-08, 0.69465790385533299]# 四元数到旋转矩阵
r = R.from_quat(Rq)
Rm = r.as_matrix()
# 0:array([ 1.00000000e+00, -2.74458557e-06, 2.55936079e-06])
# 1:array([-2.65358979e-06, -3.49007932e-02, 9.99390782e-01])
# 2:array([-2.65358979e-06, -9.99390782e-01, -3.49007932e-02])# 符号相反的四元数, 仍表示同一个旋转
Rq1= [0.71934025092983234, -1.876085535681999e-06, -3.274841213980097e-08, -0.69465790385533299]
# 四元数到旋转矩阵
r1 = R.from_quat(Rq1)
Rm1 = r1.as_matrix()
# 0:array([ 1.00000000e+00, -2.74458557e-06, 2.55936079e-06])
# 1:array([-2.65358979e-06, -3.49007932e-02, 9.99390782e-01])
# 2:array([-2.65358979e-06, -9.99390782e-01, -3.49007932e-02])# 四元数到欧拉角
euler0 = r.as_euler('xyz', degrees=True)
# ([-9.20000743e+01, 1.52039496e-04, -1.52039496e-04])
euler3 = r.as_euler('xzy', degrees=True)
#([-9.20000743e+01, -1.52039496e-04, 1.52039496e-04])
euler1 = r.as_euler('zxy', degrees=True)
#([-179.99564367, -87.99992566, 179.99579836])
euler2 = r.as_euler('zyx', degrees=True)
#([ 1.57253169e-04, 1.46640571e-04, -9.20000743e+01])euler4 = r.as_euler('yxz', degrees=True)
#([179.99564367, -87.99992566, 179.99549428])euler5 = r.as_euler('yzx', degrees=True)
#([ 1.46640571e-04, 1.57253169e-04, -9.20000743e+01])# 旋转矩阵到四元数
r3 = R.from_matrix(Rm)
qua = r3.as_quat()
#[0.7193402509298323, -1.8760855356819988e-06, -3.2748412139801076e-08, -0.694657903855333] #与原始相反,但等价# 旋转矩阵到欧拉角
euler_1 = r3.as_euler('zxy', degrees=True)
#([-179.99564367, -87.99992566, 179.99579836])# 欧拉角到旋转矩阵
r4 = R.from_euler('zxy', [-179.99564367, -87.99992566, 179.99579836], degrees=True)
rm = r4.as_matrix()
# 0:array([ 1.00000000e+00, -2.74452529e-06, 2.55936075e-06])
# 1:array([-2.65358765e-06, -3.49007933e-02, 9.99390782e-01])
# 2:array([-2.65352955e-06, -9.99390782e-01, -3.49007933e-02])# 欧拉角到四元数
qua1 = r4.as_quat()
#([-7.19340251e-01, 1.87606384e-06, 3.27274889e-08, 6.94657904e-01])#----测试--------------------------------------------------------------------
theta=[-116, 0. , -105]
r6 = R.from_euler('xyz', theta, degrees=True)
rm = r6.as_matrix()
# 0:array([-0.25881905, -0.42343401, 0.86816838])
# 1:array([-0.96592583, 0.1134588 , -0.23262502])
# 2:array([ 0. , -0.89879405, -0.43837115])qua3 = r6.as_quat()
#array([-0.52720286, 0.68706415, -0.39667667, 0.30438071])print(qua3)
python_四元数/旋转矩阵/欧拉角之间的相互变换(简单易用版)相关推荐
- 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换
文章目录 1. 转换矩阵.平移矩阵.旋转矩阵之间的关系 2. 缩放变换.平移变换和旋转变换 2. python实现旋转矩阵.四元数.欧拉角互相转化 由于在平时总是或多或少的遇到平移旋转的问题,每次都是 ...
- Matlab ——旋转矩阵,四元数,欧拉角之间的转换
最近要用这方面的东西,整理,记录,分享一下 基于Matlab现有函数下的内容 Matlab --旋转矩阵,四元数,欧拉角之间的转换 旋转矩阵 dcm R 四元数 quat q = [q0 q1 q2 ...
- matlab和Eigen库中的一些旋转矩阵(方向余弦矩阵)、四元数和欧拉角之间的转换和绘图的注意事项
最近用matlab和Eigen库中的一些旋转矩阵(方向余弦矩阵).四元数和欧拉角之间的转换和绘图,弄得我有些头疼,把遇到的问题记录一下,以防以后又脑阔疼....有不同的理解可以再评论区批评指正- 主要 ...
- 旋转矩阵、旋转向量(轴角)、四元数、欧拉角之间相互转换的代码实现(利用Eigen实现)...
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 5 #include <Eigen/C ...
- 真彩色图像,索引色图像,灰度图像, 二值图像之间的相互变换(Matlab实现)
根据图像数据矩阵解释方法的不同,MATLAB 把其处理为 4 类: RGB 图像(Binary images): 一幅 RGB 图像就是彩色像素的一个 M×N×3 数组,其中每一个彩色相似点都是在特定 ...
- 【Unity3D 灵巧小知识点】☀️ | Unity 四元数、欧拉角 与 方向向量 之间转换
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
- 罗德里格斯公式推导(轴角与旋转矩阵的关系)以及四元数与旋转向量、旋转矩阵、欧拉角之间的转换关系
罗德里格斯公式推导(轴角与旋转矩阵的关系) 意义:罗德里格斯公式表示旋转向量到旋转矩阵之间爱你的转换关系 旋转向量:一个向量,方向与旋转轴一致,长度等于旋转角度 空间中任意旋转都可以用一个旋转轴和一个 ...
- 四元数,欧拉角,旋转矩阵相互转换
#include <TransForms3d/TransForms.h>/*---------------------------------------角度弧度转换----------- ...
- matlab 欧拉角 方向余弦,旋转矩阵、欧拉角之间转换
学习过程中涉及欧拉角和旋转矩阵的转换,索性整理学习一下欧拉角四元数和旋转矩阵的概念以及matlab中的互相转换 本文摘自各大课本,博客,自己学习整理使用,侵删 MATLAB矩阵乘法从左到右依次相乘 用 ...
- ROS中四元数、欧拉角、旋转矩阵等格式转换
未完- ROS接收到odometry格式消息: nav_msgs::Odometry pos_msg 具有: pos_msg.pose.pose.orientation.x; // xyzw pos_ ...
最新文章
- python2和3的编码区别_Python2和3字符编码的区别
- SQL学习(三)之子句和函数
- JSDoc --JS API文档生成器
- java 初始化log4j_java – log4j:WARN请正确初始化log4j系统
- PyTorch-模型
- 查看某个github commit属于哪一个github pull request
- SPOJ - QTREE3Query on a tree again!——树链剖分
- 前端学习(1483):在vue发送网络请求
- 服务器tomcat/mysql的一些有关命令
- 浅谈SQL SERVER的备份还原模式
- 手把手教你使用人人开源
- 网管培训之基础知识介绍
- 地理空间数据云下载的单波段合成及去黑边
- paypal支付开发接口(转)
- icon 做成html形式,CSS icon的各种做法
- 在Excel中如何实现快速互换两列内容
- 自娱自乐的FreeRTOS——config.h配置文件详解
- 计算机专业职业适应性考试包括什么内容,2020年分类招生《职业适应性测试(职业技能测试)》大纲...
- 迅捷pdf转换器在线转换——六大转换
- 2022版本微信开发者工具引入less插件