「 SLAM lesson-3.5 」四元数的定义与运算

结合 高翔老师的著作《视觉SLAM十四讲:从理论到实践》,加上小白的工程经验共同完成。建议作为笔记功能反复使用。


一、四元数的定义

        旋转矩阵用九个量描述三自由度的旋转,具有冗余性:欧拉角与旋转向量是紧凑的,但是具有奇异性。事实上,我们找不到不带奇异性的三维向量描述方式。

奇异性举例解释为:

当我们想用两个坐标表示地球表面时(如经度和维度),必定存在奇异性(维度为\pm 90°时经度无意义)。

        我们用复数集表示复平面上的向量,而复数的乘法则能表示复平面上的旋转:例如,乘上复数 i 相当于逆时针把一个复向量旋转90度。四元数是Hamilton找到的一种扩展的复数,它既是紧凑的,也没有奇异性。如果说缺点的话,四元数不够直观,其运算稍微复杂一些。

        一个四元数 q 拥有一个实部三个虚部。如:

                                             q = q_{0} + q_{1}i + q_{2}j + q_{3}k

        其中 i , j , k 为四元数的三个虚部。这三个虚部满足关系式:

                                             \left\{\begin{matrix} i^{2}=j^{2}=k^{2}=-1\\ ij=k,ji=-k\\ jk=i,kj=-i\\ ki=j,ik=-j \end{matrix}\right.

        有时人们也用一个标量一个向量来表达四元数:

                                     q=[ s,v ], s=q_{0}\epsilon \Re,v=\begin{bmatrix} q_{1}\\ q_{2}\\ q_{3} \end{bmatrix}\varepsilon \Re ^{3},

        这里s称为四元数的实部,而 v 称为它的虚部。如果一个四元数的实部为零,称之为实四元数。反之,若让门的实部为零,称之为虚四元数。

        我们能用单位四元数表示三维空间中任意一个旋转。乘以 i 对应着旋转180度,而 i^{2},意味着绕 i 轴旋转360度后,你得到了一个相反的东西。这个东西要旋转两周才会和它原先的样子相等。

        假设某个旋转是绕单位向量 n = \begin{bmatrix} n_{x}\\ n_{y}\\ n_{z} \end{bmatrix} 进行了角度 \theta 的旋转,那么这个旋转的四元数形式为: 

                                                                 q = \begin{bmatrix} cos\frac{n}{2}\\ n_{x}sin\frac{n}{2}\\ n_{y}sin\frac{n}{2}\\ n_{z}sin\frac{n}{2} \end{bmatrix}.

        反之,我们亦可从单位是四元数中计算出对应旋转轴夹角

                                                                   \left\{\begin{matrix} \theta = 2 arccos q_{0}\\ \begin{bmatrix} n_{x}\\ n_{y}\\ n_{x} \end{bmatrix}=\begin{bmatrix} q_{1}\\ q_{2}\\ q_{3} \end{bmatrix}/sin\frac{\theta }{2} \end{matrix}\right.

        在四元数中吗,任意的旋转都可以由两个互为相反数的四元数表示。同理,取 \theta为0,则得到一个没有旋转的四元数:

                                                                q_{0} = \begin{bmatrix} \pm 1\\ 0\\ 0\\ 0 \end{bmatrix}

二、四元数的运算

      常见的运算有:四则运算、共轭、模长、求逆、数乘、点乘等等。

  1. 加法减法:

    对应位置相加。
  2. 乘法:

    把 q_{a} 的每一项与 q_{b} 每项相乘,最后整理成标准形式,如果写成向量形式并利用内外积运算,该表达式会更加简洁。
    注意到,由于最后一项外积的存在,四元数乘法通常是不可交换的,除非  v_{a} 和 v_{b} 在 \Re ^{3}中贡献,那么外积项为零。
  3. 共轭

    四元数的共轭是把虚部取成相反数。
    四元数共轭与本身相乘,会得到一个实四元数,其实部为模长的平方。
  4. 模长

    四元数模长的定义,四个数字分别平方相加后开根号。
    两个四元数乘积的模即为模的乘积。
  5. 求逆

    四元数与自己的逆的乘积为实四元数的 1。
    如果 q 为单位四元数,逆和共轭就是同一个量。同时,乘积的逆有和矩阵相似的性质。
  6. 数乘与点乘

    和向量相似,四元数可以与数相乘。
    点乘是指两个四元数每个位置上的数字分别相乘。


《视觉SLAM十四讲:从理论到实践》 PDF资源

下载链接:Robot_Starscream的资源  仅供各位研究员试读,请购买纸质书籍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Robot_Starscream

祝好!

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

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

打赏作者

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

抵扣说明:

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

余额充值