MATLAB - 四元数(quaternion)

系列文章目录


前言


一、简介

四元数是一种四元超复数,用于三维旋转和定向。

四元数的表示形式为 a+bi+cj+dk,其中 a、b、c 和 d 为实数,i、j 和 k 为基元,满足等式:i2 = j2 = k2 = ijk =-1。

四元数集用 H 表示,定义在实数的四维向量空间 R4 中。H 中的每个元素都有一个基于基元素 i、j 和 k 线性组合的唯一表示。

三维空间中的所有旋转都可以用旋转轴和围绕该轴的角度来描述。与旋转矩阵相比,四元数的优势在于旋转轴和旋转角度易于解释。例如,考虑 R3 中的一个点。要旋转该点,需要定义一个旋转轴和一个旋转角度。

04f35effaf274d64aa5b824330e23f8d.png

旋转的四元数表示可表示为 %7B2%7D%5Cright%29%5Cleft%28u_%20b%5Cmathrm%7Bi%7D+u_%7B%7Bc%7D%7D%5Cmathrm%7Bj%7D+u%20_d%5Cmathrm%7Bk%7D%5Cright%29%24 ,其中 θ 是旋转角度,[ub、uc 和 ud] 是旋转轴。) ,其中 θ 是旋转角度,[ub、uc 和 ud] 是旋转轴。

二、MATLAB 用法 

quat = quaternion()
quat = quaternion(A,B,C,D)
quat = quaternion(matrix)
quat = quaternion(RV, "rotvec")
quat = quaternion(RV, "rotvecd")
quat = quaternion(RM, "rotmat",PF)
quat = quaternion(E, "euler",RS,PF)
quat = quaternion(E, "eulerd",RS,PF)
quat = quaternion(transformation)
quat = quaternion(rotation)

 三、四元数的优点

1.非奇异表达(和例如欧拉角之类的表示相比)

2.比矩阵更紧凑(更快速)

3.单位四元数的对可以表示四维空间中的一个转动。

相关推荐

  1. 欧拉角(Euler)和Quaternion

    2023-12-25 08:46:01       30 阅读
  2. Unity中使用乘法表示旋转

    2023-12-25 08:46:01       57 阅读
  3. 陀螺仪及解算

    2023-12-25 08:46:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 08:46:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 08:46:01       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 08:46:01       87 阅读
  4. Python语言-面向对象

    2023-12-25 08:46:01       96 阅读

热门阅读

  1. 4-Docker命令之docker logs

    2023-12-25 08:46:01       54 阅读
  2. Hive01_安装部署

    2023-12-25 08:46:01       60 阅读
  3. 介绍 TensorFlow 的基本概念和使用场景。

    2023-12-25 08:46:01       62 阅读
  4. uniapp三元表达式判断状态更改字体颜色?

    2023-12-25 08:46:01       47 阅读
  5. RISC-V搭建嵌入式QT开发环境

    2023-12-25 08:46:01       45 阅读
  6. 栈与队列part02 开心消消乐

    2023-12-25 08:46:01       57 阅读