四元数基本概念&&四元数3D旋转(求两个四元数的夹角)

2023-05-16

四元数基本概念

  • 1. 四元数定义
  • q=a+bi+cj+dk (a,b,c,d\in \mathbb{R})
  • i^{2}=j^{2}=k^{2}=ijk=-1
  • 向量形式:q=\begin{bmatrix} a\\ b\\ c\\ d\\ \end{bmatrix}
  • 模长:\left \| q \right \|=\sqrt{a^{2}+b^{2}+c^{2}+d^{2}}
  • 2. 四元数加减法
  • q1=a+bi+cj+dk     q2=e+fi+gj+hk
  • q1\pm q2=\left ( a\pm e \right )+\left ( b\pm f \right )i+\left ( c\pm g \right )j+\left ( d\pm h \right )k
  • 3. 四元数的逆和共轭
  • qq-1=q-1q=1(q\neq 0)
  • q=a+bi+cj+dk  q*=a-bi-cj-dk
  • q*q=qq*=\left \| q \right \|^{2}  q-1=\frac{q*}{\left \| q \right \|^{2}}
  • 当q是单位四元数时,q-1=q*
  • 4. 四元数乘法
  • 4.1 标量乘法
  • q=a+bi+cj+dk    ;   标量s
  • sq=sa+sbi+scj+sdk  四元数与标量相乘满足乘法交换律:sq=qs
  • 4.2 四元数的乘法
  • q1=a+bi+cj+dk       q2=e+fi+gj+hk        q1\cdot q2\not \neq q2\cdot q1
  • 1ijk
    11ijk
    ii-1k-j
    jj-k-1i
    kkj-i-1
  • q1\cdot q2=\left ( a+bi+cj+dk \right )\cdot \left ( e+fi+gj+hk \right )\\=\left ( ae+afi+agj+ahk \right )+\left ( bei+bfi^{2}+bgij+bhik \right )+\left ( cej+cfji+cgj^{2}+chjk \right )+\left ( dek+dfki+dgkj+dhk^{2} \right )\\=\left ( ae-bf-cg-dh \right )+\left ( be+af-dg+ch \right )i+\left ( ce+df+ag-bh \right )j+\left ( de-cf+bg+ah \right )k
  • 写成矩阵形式:q1\cdot q2=\begin{bmatrix} a & -b& -c &-d \\ b & a& -d& c\\ c & d& a&-b \\ d& -c& b& a \end{bmatrix}\begin{bmatrix} e\\ f\\ g\\ h \end{bmatrix}      q2\cdot q1=\begin{bmatrix} a & -b& -c &-d \\ b & a& d&- c\\ c & -d& a&b \\ d& c& -b& a \end{bmatrix}\begin{bmatrix} e\\ f\\ g\\ h \end{bmatrix}

 四元数3D旋转

 四元数q1,经过旋转四元数q后得到四元数q2

qq1=q2(左乘)     q=q2q1^{-1}

q1^{-1}=q*=a-bi-cj-dk

q2q1^{-1}=\begin{bmatrix} e& -f& -g& -h\\ f& e & -h&g \\ g & h & e &-f \\ h &-g &f & e \end{bmatrix}\begin{bmatrix} a\\ -b\\ -c\\ -d \end{bmatrix}

四元数转欧拉角:

\left\{\begin{matrix} \varphi =arctan2\left ( \frac{2\left ( ab+cd \right )}{1-2\left ( b^{2} +c^{2}\right )^{2}} \right )\\ \theta =arcsin\left ( 2\left ( ac-bd \right ) \right )\\ \psi =arctan2\left ( \frac{2\left ( ad+bc \right )}{1-2\left ( c^{2} +d^{2}\right )^{2}} \right ) \end{matrix}\right.

计算出三轴欧拉角,欧拉角具有旋转顺序

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

四元数基本概念&&四元数3D旋转(求两个四元数的夹角) 的相关文章

  • Mac打开访达后如何快速知道当前文件绝对路径?

    百度查了多种方法 xff0c 还是下面这个快捷键最实用 比如我打开访达以后 xff0c 想知道当前Hello vue文件的绝对路径 xff0c 此时在当前界面直接按快捷键 option 43 command 43 c就可以复制当前文件路径到
  • 一元正态分布

    d import numpy as np import matplotlib pyplot as plt from scipy stats import norm 生成100个正态分布数据 xff0c 均值为1 xff0c 标准差为2 da
  • nohup命令详解

    nohup命令详解 一 背景说明 xff1a 启动服务的时候 xff0c 如果使用如下命令 xff0c 则会在start sh脚本所在的目录下 xff0c 产生一个名为 nohup out 的输出文件 nohup startup sh am
  • nohup命令详解

    nohup命令详解 一 背景说明 xff1a 启动服务的时候 xff0c 如果使用如下命令 xff0c 则会在start sh脚本所在的目录下 xff0c 产生一个名为 nohup out 的输出文件 span class token fu
  • Spring Boot启动后直接没有任何警告报错信息,打印`Process finished with exit code 0`直接退出

    Spring Boot启动后直接没有任何警告报错信息 xff0c 打印Process finished with exit code 0直接退出 日志 xff1a span class token number 2023 span 02 1
  • systemctl 启动/停止/重新加载 nginx

    systemctl 启动 停止 重新加载 nginx 一 新建nginx service脚本 span class token function sudo span span class token function vim span us
  • Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK pat

    Unable to determine application id com android tools idea run ApkProvisionException ERROR APK path is not specified for
  • Java获取文件的MD5

    Java获取文件的MD5 主要是通过读取文件的字符流 xff0c 然后赋值给MessageDigest对象 xff0c 最后将文件流转换成16进制的字符串 span class token keyword import span span
  • android整合好视通sdk经验总结(二)

    一 无法正常访问好视通服务接口 当按照android整合好视通sdk经验总结 xff08 一 xff09 步骤整合完毕后 xff0c 在这里修改申请的应用id和服务地址 修改完毕后运行发现无法正常初始化sdk xff0c 错误码30 xff
  • 视觉SLAM⑤--相机与图像

    目录 5 0 本章简介 5 1 相机模型 5 1 1针孔相机模型 5 1 2 畸变模型 5 1 3 双目相机模型 5 1 4 RGB D相机模型 5 2 图像 5 3 实践 xff1a 计算机中的图像 5 3 1 OpenCV的基本使用方法
  • 视觉SLAM⑩后端Ⅱ(滑动窗口滤波和优化与位姿图)

    目录 10 0 本章概述 10 1 滑动窗口滤波和优化 10 1 1 实际环境下的BA结构 10 1 2 滑动窗口法 10 2 位姿图 10 2 1 位姿图的意义 10 2 2位姿图的优化 10 3 非线性优化整体总结 xff1a 前端 后
  • 学习C++:C++进阶(五)CMake应用篇---集成第三方库和依赖管理

    目录 第二部分 xff1a 实用 CMake xff08 Practical CMake Getting Your Hands Dirty with CMake xff09 3 0 集成第三方库和依赖管理 xff08 Integrating
  • 2.ORB-SLAM2改进版本--稠密建图版本解析

    目录 1 修改思路 2 基本概念 nbsp 2 1 统计滤波 2 2 体素滤波
  • FreeRTOS 的命名规则

    初学 FreeRTOS 的用户对其变量和函数的命名比较迷惑 xff0c 下面专门做一下介绍 xff1a 变量 uint32 t 定义的变量都加上前缀 ul u 代表 unsigned 无符号 xff0c l 代表 long 长整型 uint
  • 【单目测距和双目测距比较】

    单目测距和双目测距比较 单 双目方案的优势与难点单目测距双目测距 双目测距实现步骤实现过程 单 双目方案的优势与难点 单目测距 优点 xff1a 单目的优势在于成本较低 xff0c 对计算资源的要求不高 xff0c 系统结构相对简单 缺点
  • ROS学习笔记(3):添加第三方依赖库

    最近在工控机上加入CAN卡 xff0c 想利用CAN卡来做为数据收发 现在在工程中加入CAN卡的头文件和自己做的cpp文档 已经申明了 函数 xff0c 但是还是会出现上图所示的错误 xff0c 经过一晚上的战斗算是搞清楚了 感谢 64 头
  • Java面试题及答案2019版(上)

    1 面向对象的特征有哪些方面 xff1f 答 xff1a 面向对象的特征主要有以下几个方面 xff1a 抽象 xff1a 抽象是将一类对象的共同特征总结出来构造类的过程 xff0c 包括数据抽象和行为抽象两方面 抽象只关注对象有哪些属性和行
  • git到远程出现的一些问题以及解决方法

    我们首先回顾一下 git reset命令 xff1a 1 git reset mixed xff1a 此为默认方式 xff0c 等同于不带任何参数的git reset 2 git reset soft 回退到某个版本 xff0c 只回退了c
  • CMakeLists.txt 和 package.xml 重要内容详解

    边学边看 xff0c 学到什么分享什么 CMakeLists txt 构建配置文件package xml 功能包配置文件 上面的意思个人理解就是功能包本身如果要在别处运行 xff0c 需要什么样的条件在xml文件中看 功能包自身 xff0c
  • Docker运行Prometheus(普罗米修斯)

    1 编辑yaml格式 xff0c 进行自我监控 mkdir etc prometheus cd etc prometheus vi etc prometheus prometheus yml global scrape interval 1

随机推荐

  • Kubernetes(k8s)安装Dashboard(控制面板)

    参考文章 xff1a https www jianshu com p f7ebd54ed0d1 1 默认情况下不会部署 Dashboard xff0c 可以通过以下命令部署 xff1a kubectl apply f https raw g
  • 航模无刷电机常见参数

    1 xff0c KV值 xff1a 表示电机运行速度的指标 xff0c 电机转速 61 KV值 x 工作电压 2 xff0c 空载电流 xff1a 指电机不带负载 xff08 螺旋桨等 xff09 时的额定工作电流 3 xff0c 电阻 x
  • RealSense D435i深度相机介绍

    文章目录 D435i硬件结构及各个组件原理详解前言一 硬件参数信息二 视觉处理器D4三 深度模块四 红外投影仪 Infrared Projector 五 彩色图像信号处理机 ISP 六 IMU D435i硬件结构及各个组件原理详解 前言 R
  • Ubuntu20.04下安装intel Realsense SDK

    1 安装安装依赖项 sudo apt span class token operator span get install libudev span class token operator span dev pkg span class
  • MiniFly的学习经历

    MiniFly的学习经历 基于MiniFly的无人机编队系统一台遥控器同步控制多台无人机无线通讯方面遥控代码部分无人机通信代码部分 一台遥控器分布控制多台无人机无人机控制部分 使用电脑的串口上位机控制无人机遥控串口通信接收指令指令设计 基于
  • 【NOJ1044】【算法实验三】【BFS_分支限界】独轮车

    1044 独轮车 时限 xff1a 1000ms 内存限制 xff1a 10000K 总时限 xff1a 3000ms 描述 独轮车的轮子上有红 黄 蓝 白 绿 xff08 依顺时针序 xff09 5种颜色 在一个如下图所示的20 20的迷
  • 【杭电100题】2073 无限的路

    题目链接 xff1a http acm hdu edu cn showproblem php pid 61 2073 xff08 c语言的double类型printf lf 显示0 00000问题 xff09 xff1a https blo
  • 【杭电100题】2094 产生冠军

    原题 xff1a http acm hdu edu cn showproblem php pid 61 2094 最近很喜欢用map 把成功者 失败者都存起来 然后在成功者里把曾经失败的划掉 最后成功者里如果只剩一个人 xff0c 冠军产生
  • docker命令详解

    镜像下载 搜索镜像docker search 43 镜像名字 docker search centos 从Docker Hub中搜索符合条件的镜像 下载镜像 docker pull 43 镜像名字 docker pull centos 查看
  • uCos中的信号量机制

    文章目录 1 背景2 概述2 1 主要机制及应用2 2 同步或通信的基本方式 3 信号量3 1 主要机制及应用3 2 分类3 3 互斥信号量3 3 1 嵌套 递归 资源访问3 3 2 删除安全 3 4 各种互斥机制的比较3 5 二值信号量3
  • opencv里的几种图像数据格式(CV_8UC3,CV_32FC3,CV_64FC3等)

    opencv里的几种图像数据格式 xff08 CV 8UC3 xff0c CV 32FC3 xff0c CV 64FC3等 xff09 参考 xff1a https blog csdn net qq 29540745 article det
  • android:使用audiotrack 类播放wav文件

    参考 xff1a http mindtherobot com blog 624 android audio play an mp3 file on an audiotrack http baike baidu com view 14471
  • 逆变电路

    逆变的概念 与整流相对应 xff0c 直流电 变成 交流电 交流侧接电网 xff0c 为 有源逆变 交流侧接负载 xff0c 为 无源逆变 xff0c 本章主要讲述无源逆变 逆变与变频 变频电路 xff1a 分为 交交变频 和 交直交变频
  • windows找不到树莓派IP地址

    树莓派用网线连接电脑 xff0c 第一次正常 xff0c 而第二次用arp a找不到树莓派的地址 xff0c 网上查资料 xff0c 网络共享关闭再重新打开依旧找不到 xff0c 后来发现网络处以太网一直显示正在识别 xff0c 把以太网禁
  • unity报错NullReferenceException: Object reference not set to an instance of an object

    在做unity3d的UDP通信时 xff0c 遇到了该的错误 之前初始化用的Start xff0c 运行正常 xff0c 某天突然报错 xff0c 后面看到了文章 https blog csdn net u011185231 article
  • Unity3D UDP通信

    补一下前面遇到的问题 最近在做树莓派与Unity3D的UDP通信 xff0c 树莓派通过网线连接电脑 xff0c 设置网络共享 树莓派作为客户端 xff08 python xff09 xff0c Unity3D作为服务端 xff08 C x
  • ROS机械臂模型的调试

    用传感器串口输出数据控制虚拟机ROS中的6DOF机械臂模型 xff08 每次重新调试都需要一定的时间熟悉过程 xff0c 所以记录一下 不记录代码只记录调试过程 xff09 串口配置 传感器通过USB转TTL模块接到电脑 xff0c 在虚拟
  • openrave

    配置IKFAST求解器 xff0c 装openrave装了一天终于在差三分钟十一点的时候出来了界面 ubuntu18的boost默认1 65 xff0c 但是好像和openrave不匹配 xff0c 换成了1 58 如果后续使用没问题就来详
  • ROS1代码转ROS2

    先占个坑 xff0c 等我做完写总结
  • 四元数基本概念&&四元数3D旋转(求两个四元数的夹角)

    四元数基本概念 1 四元数定义向量形式 xff1a 模长 xff1a 2 四元数加减法 3 四元数的逆和共轭 当q是单位四元数时 xff0c 4 四元数乘法4 1 标量乘法 xff1b 标量s 四元数与标量相乘满足乘法交换律 xff1a 4