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

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)]

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值