第三讲,旋转向量和欧拉角

1.旋转向量

旋转矩阵来描述旋转,有了变换矩阵描述一个六自由度 的三维刚体运动,是不是已经足够了呢?但是,矩阵表示方式至少有以下几个缺点:

  1. SO(3) 的旋转矩阵有九个量,但一次旋转只有三个自由度。因此这种表达方式是冗余的。同理,变换矩阵用十六个量表达了六自由度的变换。那么,是否有更紧凑的表示呢?
  2. 旋转矩阵自身带有约束:它必须是个正交矩阵,且行列式为 1。变换矩阵也是如此。当我们想要估计或优化一个旋转矩阵/变换矩阵时,这些约束会使得求解变得更困难。

任意旋转都可以用一个旋转轴和一个旋转角来刻画。于是,我们可以使用一个向量,其方向与旋转轴一致,而长度等于旋转角

这种向量,称为旋转向量(或轴角,AxisAngle)。这种表示法只需一个三维向量即可描述旋转

同样,对于变换矩阵,我们使用一个旋转向量和一个平移向量即可表达一次变换。这时的维数正好是六维。

1.1 旋转向量和旋转矩阵之间的转换

假设有一个旋转轴为 n,角度为 θ 的旋转,显然,它对应的旋转向量为 θn。

在这里插入图片描述

w = θn 称为角轴或者旋转向量

  • 角轴与旋转矩阵的不同
    • 旋转矩阵:九个量,有正交性约束和行列式值约束
    • 角轴:三个量,没有约束
  • 注意:它们只是表达方式不同,但表达的东西可以是同一个
  • 角轴也就是第四章要介绍的李群代数

旋转向量到旋转矩阵

旋转向量到旋转矩阵的过程由罗德里格斯公式表明, 由于推导过程比较复杂,我们不作描述,只给出转换的结果:

在这里插入图片描述

符号 ∧ 是向量到反对称的转换符。反之,我们也可以计算从一个旋转矩 阵到旋转向量的转换。对于转角 θ,有:

在这里插入图片描述

转轴 n 是矩阵 R 特征值 1 对应的特征向量。求解此方程,再归一化,就得到了旋转轴。读者也可以从“旋转轴经过旋转之后不变”的几何角度看待这个方程。

2.欧拉角

​ 无论是旋转矩阵旋转向量,虽然它们能描述旋转,但对我们人类是非常不直观的。当我们看到一个旋转矩阵或旋转向量时,很难想象出来这个旋转究竟是什么样的。当它们变换时,我们也不知道物体是向哪个方向在转动。而欧拉角则提供了一种非常直观的方式来描述旋转——它使用了三个分离的转角,把一个旋转分解成三次绕不同轴的旋转

  • 欧拉角
    • 将旋转分解为三次不同轴上的转动,以便理解
    • 例如:按照Z—Y—X顺序转动
    • 轴可以是定轴动轴,顺序亦可不同,因此存在许多种定义方式不同的欧拉角
    • 常见的有yaw-pitch-roll(偏航-俯仰-横滚)

在这里插入图片描述

2.1 欧拉角的缺点:万向锁问题

​ 欧拉角的一个重大缺点是会碰到著名的万向锁问题:在俯仰角为 ±90◦ 时,第一次旋转与第三次旋转将使用同一个轴,使得系统丢失了一个自由度(由三次 旋转变成了两次旋转)。

​ 这被称为奇异性问题,在其他形式的欧拉角中也同样存在。理论上可以证明,只要我们想用三个实数来表达三维旋转时,都会不可避免地碰到奇异性问题。 由于这种原理,欧拉角不适于插值和迭代,往往只用于人机交互中。我们也很少在SLAM程序中直接使用欧拉角表达姿态,同样不会在滤波或优化中使用欧拉角表达旋转(因为它具有奇异性)。不过,若你想验证自己算法是否有错时,转换成欧拉角能够快速辨认结果的正确与否。

在这里插入图片描述

3.四元数

​ 旋转矩阵用九个量描述三自由度的旋转,具有冗余性

欧拉角旋转向量是紧凑的,但具有奇异性

​ 事实上,我们找不到不带奇异性的三维向量描述方式 。这有点类似于,当我们想用两个坐标表示地球表面时(如经度和纬度),必定存在奇异性(纬度为 ±90◦ 时,经度无意义)。

​ 三维旋转是一个三维流形,想要无奇异性地表达它,用三个量是不够的。 回忆我们以前学习过的复数。我们用复数集 C 表示复平面上的向量,而复数的乘法则 能表示复平面上的旋转:例如,乘上复数 i 相当于逆时针把一个复向量旋转 90 度。类似 的,在表达三维空间旋转时,也有一种类似于复数的代数:四元数(Quaternion)。四元数是 Hamilton 找到的一种扩展的复数. 它既是紧凑的,也没有奇异性。如果说缺点的话,四 元数不够直观,其运算稍为复杂一些

  • 四元数
    • 一种可扩展的复数
  • 四元数有三个虚部,可以表达三维空间中的旋转,表示如下: i, j, k 为四元数的三个虚部

在这里插入图片描述

也可以用一个标量和一个向量来表达四元数

在这里插入图片描述
s 称为四元数的实部,而 v 称为它的虚部。如果一个四元数虚部为 0,称之为实四 元数。反之,若它的实部为 0,称之为虚四元数。

  • 虚部之间的关系:自己和自己的运算像复数,自己和别人的运算像叉乘

在这里插入图片描述

己和自己的运算像复数,自己和别人的运算像叉乘

[外链图片转存中…(img-33q2rJMf-1693209795645)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/87196.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谁说银行U盾有OK键,就不能远程连接调用?

如今很多公司都在用USB Server管理U盾,但是有的U盾不是要按OK键吗?怎么远程连接呢? 了解一下U盾OK键远程点按器! 有了它就可以配合USB Server自动点按OK键、远程连接调用网银U盾! 把U盾固定在点按器上, 将…

无涯教程-Python机器学习 - Analysis of Silhouette Score函数

剪影得分的范围是[-1,1]。其分析如下- 1分数-接近1 剪影分数表示样本距离其邻近簇很远。 0分数-0 剪影分数表示样本在将两个相邻聚类分隔开的决策边界上或非常接近。 -1分数-1 剪影分数表示样本已分配给错误的聚类。 Silhouette得分的计算可以使用以下公式完成 $$剪影得…

腾讯云coding平台平台inda目录遍历漏洞复现

前言 其实就是一个python的库可以遍历到,并不能遍历到别的路径下,后续可利用性不大,并且目前这个平台私有部署量不多,大多都是用腾讯云在线部署的。 CODING DevOps 是面向软件研发团队的一站式研发协作管理平台,提供…

水库大坝北斗RTK位移自动监测系统方案

一、方案背景 我国已拥有水库大坝9.8万余座,其中95%以上为土石坝,95%以上是上个世纪80年代以前建设的老坝。虽然近10年来我国进行了大规模的病险水库除险加固,但水库大坝数量多,土石坝多,出险的几率非常高。大坝作为一…

element-ui中的el-table的summary-method(合计)的使用

场景图片: 图片1: 图片2: 一:使用element中的方法 优点: 直接使用summary-method方法,直接,方便 缺点: 只是在表格下面添加了一行,如果想有多行就不行了 1:h…

关于单例模式

单例模式的目的: 单例模式的目的和其他的设计模式的目的都是一样的,都是为了降低对象之间的耦合性,增加代码的可复用性,可维护性和可扩展性。 单例模式: 单例模式是一种常用的设计模式,用简单的言语说&am…

合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button)

按钮 (Button) 按钮控件,这个就不用多说了,界面的基础控件之一。 示例代码 – 按键回调函数 event_handler function(obj, event) if event lvgl.EVENT_CLICKED then print(“Clicked\n”) elseif event lvgl.EVENT_VALUE_CHANGED then print(“To…

上海亚商投顾:创业板指反弹大涨1.26% 核污染概念股午后全线走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日集体反弹,沪指午后冲高回落,创业板指盘中涨超2%,尾盘涨幅也有所收…

3D模型转换工具HOOPS Exchange助力打造虚拟现实应用程序

挑战: 支持使用各种 CAD 系统和 CAD 文件格式的客户群向可视化硬件提供快速、准确的数据加载提供对详细模型信息的访问,同时确保高帧率性能 解决方案: HOOPS Exchange领先的CAD数据转换工具包 结果: 确保支持来自领先工程软件…

微服务中间件--MQ服务异步通信

MQ服务异步通信 MQ服务异步通信a.消息可靠性1) 生产者消息确认2) 消息持久化3) 消费者消息确认4) 消费者失败重试4.a) 本地重试4.b) 失败策略 b.死信交换机1) 初识死信交换机2) TTL3) 延迟队列a) 安装延迟队列插件b) SpringAMQP使用延迟队列插件 c.惰性队列1) 消息堆积问题2) 惰…

【FreeRTOS】【STM32】中断详细介绍

文章目录 一、三种优先级的概念辨析1. 先理清楚两个概念:CPU 和 MPU2. Cortex-M3 内核与 STM32F1XX 控制器有什么关系3. 优先级的概念辨析① Cortex-M3 内核和 STM32F1XX 的中断优先级② FreeRTOS 的任务的优先级 二、 Cortex-M3 内核的中断优先级1. 中断编号2. 优先…

Arcgis colorRmap

arcgis中colorRmap对应的名称: 信息来源:https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm 在arcpy中使用方法: import arcpy cr arcpy.mp.ColorRamp("Yellow to Red")python中 ma…