1. 基本概念

  • 视觉惯性:Visual-Inertial (VI)
  • VI ORB-SLAM:视觉惯性ORB-SLAM
  • VI ORB-SLAM输入:
    • IMU数据(用B表示,加速度:aB;角速度:ωB\mathbf a_B ; 角速度:\omega_B;时间间隔:△t\bigtriangleup t)
    • 单目图像
    • 在图像中提取KeyPoints时,对像素坐标进行畸变校正,即此KeyPoint坐标可与投影点坐标进行匹配
  • IMU数据(加速度和角速度)的测量除了被传感器噪声影响之外,还被缓慢变化的加速度(Accelerometer)偏差(bab_a)和陀螺仪(Gyroscope)偏差(bgb_g)
  • 加速度:受重力加速度(gw\Bbb g_w)影响,所在在计算运动时,需要减去重力加速度的作用。
  • SO(3)SO(3):The group of rotations about the origin in 3 dimensions
  • SE(3)SE(3):The group of rigid body motions (comprising rotations and translations) in 3 dimensions

2. 向量

  • 向量的运处可以由坐标运算来表达;下面的a、b都为列向量。

2.1 向量加减法

a±b=∑i=03(ai±bi)

a\pm b = \sum_{i=0}^3 (a_i \pm b_i)

2.2 向量内积/点乘(结果为实数)

a⋅b=aTb=∑i=03aibi=|a||b|cos(a,b)

a \cdot b = a^Tb = \sum_{i=0}^3 a_i b_i = |a||b|cos(a,b)

2.3 向量外积/叉乘(结果为向量)

a×b=⎡⎣⎢ia1b1ja2b2ka3b3⎤⎦⎥=⎡⎣⎢a2b3−a3b2a3b1−a1b3a1b2−a2b1⎤⎦⎥=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥b

a \times b = \begin{bmatrix}i & j & k \\a_1 & a_2 & a_3 \\b_1 & b_2 & b_3 \\\end{bmatrix} =\begin{bmatrix}a_2b_3-a_3b_2 \\a_3b_1-a_1b_3 \\a_1b_2-a_2b_1 \\\end{bmatrix}=\begin{bmatrix}0 & -a_3 & a_2 \\a_3 & 0 & -a_1 \\-a_2 & a_1 & 0 \\\end{bmatrix} b

2.4 向量欧氏长度(向量2范数)

  • xx:为列向量
  • ||x||||x||:向量欧氏长度(向量2范数)
  • ||x||=(xTx)1/2||x|| = (x^Tx)^{1/2}

3. 特殊矩阵

3.1 旋转矩阵 (特殊正交群)

  • R是一个正交矩阵(RRT=IRR^T = I)
  • R的行列式为+1 (det(A)=+1det(A) = +1)
    SO(n)={R∈Rn×n|RRT=I,det(A)=1}

    SO(n) = \{R \in \mathbb R^{n \times n} \; | \; RR^T=I, \;det(A) = 1\}

3.2 对称矩阵 (Symmetric Matrix)

  • 对称矩阵:A=ATA=A^T
  • 若A是对称矩阵,则有:
    A=UDUT

    A = UDU^T

    • U:正交矩阵
    • D:对角矩阵
    • 实对称矩阵:有实特征值;且特征向量正交
  • 提取实对称矩阵的特征值:雅可比方法(Jacobi′smethod)\color {red}{提取实对称矩阵的特征值:雅可比方法(Jacobi’s method) }

3.3 反对称矩阵 (Skew-Symmetric Matrix)

  • 反对称矩阵:A=−ATA=-A^T
  • 若S是反对称矩阵,则有:
    S=UBUT

    S = UBU^T

    • B:块对角矩阵,其形式为:

      diag(a1Z,a2Z,...,amZ,0,...,0),whereZ=[0−110]

      diag(a_1Z, a_2Z, ..., a_mZ, 0, ..., 0), \; where Z = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix}

    • S的特征向量都是纯虚数,奇数阶的反对称矩阵是奇异的(不可逆)
  • 向量的反对称矩阵\color {red}{向量的反对称矩阵}:若a=(a1,a2,a3)Ta = (a_1, a_2, a_3) ^T是一个3维列向量, 其反对称矩阵为:
    [a]×=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥

    [a]_{\times} = \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \\ \end{bmatrix}

    • aa:是3×13 \times 1的列向量
    • [a]×[a]_{\times}:是3×33 \times 3的反对称矩阵
    • 矩阵[a]×[a]_{\times}:是奇异矩阵(不可逆)
  • 向量叉乘与反对称矩阵的关系
    a×b=a∧b=⎡⎣⎢ia1b1ja2b2ka3b3⎤⎦⎥=⎡⎣⎢a2b3−a3b2a3b1−a1b3a1b2−a2b1⎤⎦⎥=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥b=[a]×b=(aT[b]×)T

    a \times b = a ∧ b =\begin{bmatrix}i & j & k \\a_1 & a_2 & a_3 \\b_1 & b_2 & b_3 \\\end{bmatrix} =\begin{bmatrix}a_2b_3-a_3b_2 \\a_3b_1-a_1b_3 \\a_1b_2-a_2b_1 \\\end{bmatrix}=\begin{bmatrix}0 & -a_3 & a_2 \\a_3 & 0 & -a_1 \\-a_2 & a_1 & 0 \\\end{bmatrix} b = [a]_{\times} b = (a^T[b]_{\times})^T

a×b=a∧b=⎡⎣⎢a2b3−a3b2a3b1−a1b3a1b2−a2b1⎤⎦⎥=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥b=[a]×b=(aT[b]×)T

a \times b = a ∧ b =\begin{bmatrix}a_2b_3-a_3b_2 \\a_3b_1-a_1b_3 \\a_1b_2-a_2b_1 \\\end{bmatrix}=\begin{bmatrix}0 & -a_3 & a_2 \\a_3 & 0 & -a_1 \\-a_2 & a_1 & 0 \\\end{bmatrix} b = [a]_{\times} b = (a^T[b]_{\times})^T

4. 3D坐标系

4.1 坐标系旋转

  • 灰色的为坐标系1 (V1=(322)TV_1 = (3 \;\; 2 \;\; 2)^T),黑色的为坐标系2 (V2=(3.54−0.7072)TV_2 = (3.54 \; -0.707 \;\; 2)^T$)
  • 坐标系2的x轴和y轴相对于坐标系1有旋转,其旋转矩阵为:
    R=⎡⎣⎢0.707−0.70700.7070.7070001⎤⎦⎥

    R= \begin{bmatrix} 0.707 & 0.707 & 0 \\ -0.707 & 0.707 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \\

V2=RV1=⎡⎣⎢0.707−0.70700.7070.7070001⎤⎦⎥⎡⎣⎢322⎤⎦⎥=⎡⎣⎢3.54−0.7072⎤⎦⎥

V_2 = RV_1= \begin{bmatrix} 0.707 & 0.707 & 0 \\ -0.707 & 0.707 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 3 \\ 2 \\ 2 \\ \end{bmatrix}= \begin{bmatrix} 3.54 \\ -0.707 \\ 2 \\ \end{bmatrix}

  • 旋转矩阵RR的直观理解:

    • RR的列对应于单位向量
    • 此单位向量的的值为坐标系1的对应轴的单位向量在坐标系2中值
    • RR的第一列:为坐标系1中点(100)T(1 \quad 0 \quad 0)^T在坐标系2中的值
    • RR的第二列:为坐标系1中点(010)T(0 \quad 1 \quad 0)^T在坐标系2中的值
    • RR的第三列:为坐标系1中点(001)T(0 \quad 0 \quad 1)^T在坐标系2中的值
    • 只有满足以下要求的3×33 \times 3矩阵(RR)才能表示坐标轴旋转:

      • R的列向量的长度(2-范数)都为1
      • R的列向量相互正交(即内积为0)
      • R的行列式为1(detA=1detA = 1)
      • 4.2 坐标系平移

        • 灰色的为坐标系1 (V1=(322)TV_1 = (3 \quad 2 \quad 2)^T),黑色的为坐标系2 (V2=(112)TV_2 = (1 \quad 1 \quad 2)^T
        • V2=V1+tV_2 = V_1 + t: tt为坐标系1的原点在坐标系2中的位置(−2−10)T(-2 \quad -1 \quad 0)^T

        4.3 坐标系旋转与平移的组合

        • 灰色的为坐标系1 (V1=(322)TV_1 = (3 \quad 2 \quad 2)^T),黑色的为坐标系2 (V2=(1.41402)TV_2 = (1.414 \quad 0 \quad 2)^T

          R=⎡⎣⎢0.707−0.70700.7070.7070001⎤⎦⎥,t=⎡⎣⎢−2.1210.7070⎤⎦⎥V2=RV1+t

          R= \begin{bmatrix} 0.707 & 0.707 & 0 \\ -0.707 & 0.707 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}, \quad t=\begin{bmatrix} -2.121 \\ 0.707 \\ 0 \\ \end{bmatrix} \\ V_2 = RV_1 + t

        4.4 齐次坐标系

        • 上面的旋转和平移需要用一个方程来表示:V2=RV1+tV_2 = R V_1 + t
        • 坐标系的旋转和平移能否用一个矩阵来表示呢?\color {red}{坐标系的旋转和平移能否用一个矩阵来表示呢?}
        • 齐次坐标系\color {red}{齐次坐标系}:可把坐标系的旋转和平移用一个矩阵来表示
          T4×4=[R3×301×3t3×111×1]T−14×4=[RT3×301×3−RT3×3t3×111×1]⎡⎣⎢⎢⎢0.707−0.707000.7070.707000010−2.1210.70701⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢3221⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢1.414021⎤⎦⎥⎥⎥

          T_{4 \times 4}=\begin{bmatrix} R_{3 \times 3} & t_{3 \times 1} \\ 0_{1 \times 3} & 1_{1 \times 1} \\ \end{bmatrix} \\ T_{4 \times 4}^{-1}=\begin{bmatrix} R_{3 \times 3}^T & -R_{3 \times 3}^Tt_{3 \times 1} \\ 0_{1 \times 3} & 1_{1 \times 1} \\ \end{bmatrix} \\ \begin{bmatrix} 0.707 & 0.707 & 0 & -2.121 \\ -0.707 & 0.707 & 0 & 0.707 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 3 \\ 2 \\ 2 \\ 1 \\ \end{bmatrix}= \begin{bmatrix} 1.414 \\ 0 \\ 2 \\ 1 \\ \end{bmatrix}

        5. 李群与李代数(Lie Group and Lie Algebra)

        5.1 引入李群与李代数的原因

        • 三维世界刚体运动的描述:旋转矩阵、旋转向量、欧拉角、四元数等\color{red}{旋转矩阵、旋转向量、欧拉角、四元数等}
        • 除了表示\color{red}{表示}之外, 还需要对其进行优化\color{red}{优化}和估计\color{red}{估计}
        • 旋转矩阵自身带有约束(正交且行列式为1\color{red}{正交且行列式为1}),作为优化变量时,会引入额外的约束,使优化变得困难
        • 李代数上可以变为无约束优化\color{red}{无约束优化}

        5.2 特殊正交群与特殊欧氏群

        • 三维旋转矩阵构成了特殊正交群(SpecialOrthogonalgroup)\color {red}{特殊正交群(Special \; Orthogonal \; group)}

          SO(3)={R∈R3×3|RRT=I,det(R)=1}

          SO(3) = \{ R \in \mathbb R ^{3 \times 3} \quad | \quad RR^T = I, \quad det(R) = 1 \}

        • 三维变换矩阵(旋转+平移)构成了特殊欧氏群(SpecialEuclideangroup)欧氏意为刚体变换\color {red}{特殊欧氏群(Special \; Euclidean \; group)欧氏意为刚体变换}
          SE(3)={T=[R0Tt1]∈R4×4|R∈SO(3),t∈R3}

          SE(3) = \left\{ T = \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} \in \mathbb R^{4 \times 4} \quad | \quad R \in SO(3), \quad t \in \mathbb R^3 \right\}

        • 群(Group):是一种集合(AA)加上一种运算的代数结构,此运算满足以下性质(凤姐咬你):
          • 封闭性:∀a1,a2∈A,a1⋅a2∈A\forall a_1, a_2 \in A, \quad a_1 \cdot a_2 \in A
          • 结合律:∀a1,a2,a3∈A,(a1⋅a2)⋅a3=a1⋅(a2⋅a3)\forall a_1, a_2, a_3 \in A, \quad (a_1 \cdot a_2) \cdot a_3 = a_1 \cdot (a_2 \cdot a_3)
          • 幺元:∃a0∈A,s.t.∀a∈A,a0⋅a=a⋅a0=a\exists a_0 \in A, \quad s.t. \forall a \in A, \quad a_0 \cdot a = a \cdot a_0 = a
          • 逆:∀a∈A,∃a−1∈A,s.t.a⋅a−1=a0\forall a \in A, \exists a^{-1} \in A, \quad s.t. \quad a \cdot a^{-1} = a_0
        • 旋转矩阵集合+矩阵乘法:构成群(旋转矩阵群:SO(3)SO(3)(3维特殊正交群))
        • 变换矩阵集合+矩阵乘法:构成群(变换矩阵群:SE(3)SE(3)(3维特殊欧氏群))
        • 5.3 李群(Lie Group)(位于矩阵空间)

          • 李群(SO(3)SO(3)):三维空间旋转矩阵的集合
          • 李群中的旋转矩阵有9个值,所以可以把SO(3)SO(3)看作9维空间

            • 上图是SO(3)表面(流形)(surface (manifold))的一部分
            • 绿点:表示单位矩阵
            • 蓝点:绕xx轴旋转了10度
            • 红点:绕zz轴旋转了10度
          • 在SO(3)SO(3)中,如何表示单位矩阵附近的R矩阵?

            R=⎡⎣⎢1−b−cb1−fcf1⎤⎦⎥

            R= \begin{bmatrix} 1 & b & c \\ -b & 1 & f \\ -c & -f & 1 \\ \end{bmatrix}

            • b,c,fb, c, f:无穷小
            • 此矩阵有3个参数,因此在单位矩阵附近的矩阵看起来像一个三维空间
            • 此矩阵的来由:
            • 把R表示为在单位矩阵附近的形式
              R=⎡⎣⎢100010001⎤⎦⎥−f⎡⎣⎢0000010−10⎤⎦⎥+c⎡⎣⎢00−1000100⎤⎦⎥−b⎡⎣⎢010−100000⎤⎦⎥

              R= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} - f \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{bmatrix} + c \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \\ \end{bmatrix} -b \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix}

            • 设α1=−f,α2=c,α3=−b\alpha_1 = -f, \quad \alpha_2 = c, \quad \alpha_3 = -b,则有:
              R=I+α1G1+α2G2+α3G3(α1,α2,α3都无穷小)G1=⎡⎣⎢0000010−10⎤⎦⎥G2=⎡⎣⎢00−1000100⎤⎦⎥G3=⎡⎣⎢010−100000⎤⎦⎥

              R = I + \alpha_1G_1 + \alpha_2G_2 + \alpha_3G_3 \quad(\alpha_1,\alpha_2,\alpha_3都无穷小 ) \\ G_1 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{bmatrix} \quad G_2 = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \\ \end{bmatrix} G_3 = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix}

          • G1,G2,G3G_1, G_2, G_3:叫做单位矩阵附近矩阵的导数分量,即生成矩阵(Generator Matrices)。

          • 李群的性质:

            • 具有连续(光滑)性质的群
            • 既是群,也是流形
            • 直观上看,一个刚体能够连续地在空间中运动,所以SO(3)SO(3)和SE(3)SE(3)都是李群
            • 局限性:李群只定义了良好的乘法,而没有加法,所以无法进行求极限、求导等操作\color {blue}{局限性:李群只定义了良好的乘法,而没有加法,所以无法进行求极限、求导等操作},即无法进行优化

          5.4 正切空间和导数:李代数(Lie Algebra)(位于向量空间)

          • 正切空间:是一个向量空间,其原点在单位矩阵(identitymatrix)的位置处\color {red}{正切空间:是一个向量空间,其原点在单位矩阵(identity matrix)的位置处}
          • 向量空间+双线性运算 = 李代数 (Lie algebra)
          • 生成矩阵(Generator Matrices(G1、G2、G3G_1、G_2、G_3)):是此向量空间的基
          • 若G1,G2,G3G_1, G_2, G_3变为非无穷小,则它们创建了一个3维平面,此平面与SO(3)SO(3)正切于单位向量,下图是一个二维表示:

            • 红色R(t)R(t):表示流形表面上的路径
            • 橙色dR/dtdR/dt:表示当它经过单位向量时,此路径对变量t的导数
            • 正切空间:可看作SO(3)SO(3)在单位向量处可能的导数集合
          • 重点:若旋转矩阵R是变量tt(如:弧度)的函数,则当tt取一定的值时R(t)=IR(t) = I(如绿点处),在此点dR/dtdR/dt必然位于正切空间上,且是生成矩阵(G1、G2、G3G_1、G_2、G_3)的线性组合:
            dRdt∣R=I=∑i3αiGi

            \frac {dR}{dt} \mid_{R=I} = \sum_i^3\alpha_i G_i

          • 举例说明:若变量t是绕x轴旋转的弧度值,则有:

            R=⎡⎣⎢1000cos(t)sin(t)0−sin(t)cos(t)⎤⎦⎥

            R = \begin{bmatrix} 1 & 0 & 0 \\ 0 & cos(t) & -sin(t) \\ 0 & sin(t) & cos(t) \\ \end{bmatrix}

            • RR对tt的导数为:

              dRdt=⎡⎣⎢0000−sin(t)cos(t)0−cos(t)−sin(t)⎤⎦⎥

              \frac {dR}{dt} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & -sin(t) & -cos(t) \\ 0 & cos(t) & -sin(t) \\ \end{bmatrix}

            • 当t=0时,R=I,则导数为:
              dRdt|t=0=⎡⎣⎢0000010−10⎤⎦⎥=G1

              \frac {dR}{dt}|_{t=0} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \\ \end{bmatrix} = G_1

            • G1G_1:对应绕 x 轴的旋转
            • G2G_2:对应绕 y 轴的旋转
            • G3G_3:对应绕 z 轴的旋转
          • 李代数:与李群对应的一种结构,位于向量空间。

            • 记作:so(3)、se(3)so(3)、se(3)
            • 李代数是李群单位矩阵处的正切空间
          • 李代数的定义:
            • 向量空间+双线性运算(特殊:三维向量+叉乘运算:构成了李代数)\color {blue}{向量空间+双线性运算(特殊:三维向量+叉乘运算:构成了李代数)}
            • 组成:向量集合V + 数域F + 二元运算符[ , ] (叫做李括号,表示两个元素的差异)
          • 李代数的通用性质:
            • 封闭性:∀X,Y∈V,[X,Y]∈V\forall X, Y \in V, \quad [X, Y] \in V
            • 双线性:∀X,Y,Z∈V,a,b∈F则有:[aX+bY,Z]=a[X,Z]+b[Y,Z][Z,aX+bY]=a[Z,X]+b[Z,Y]\forall X, Y, Z \in V, a, b \in F \; 则有: \\ [aX + bY, Z] = a[X, Z] + b[Y, Z] \quad [Z, aX+bY] = a[Z, X] + b[Z, Y]
            • 自反性:∀XinV,[X,X]=0\forall X in V, \quad [X,X] = 0
            • 雅可比恒等式:∀X,Y,ZinV,[X,[Y,Z]]+[Y,[Z,X]]+[Z,[X,Y]]=0\forall X, Y, Z in V, \quad [X,[Y,Z]] + [Y, [Z, X]] + [Z,[X,Y]] = 0
            • 李括号具有反对称性(anit-symmetric):∀X,YinV,[X,Y]=−[Y,X]\forall X, Y in V, \quad [X,Y] = -[Y,X]
          • so(3)的性质(旋转向量):
            • so(3)={r∈R3,S=[r]×∈R3×3}S=[r]×=⎡⎣⎢0r3−r2−r30r1r2−r10⎤⎦⎥so(3) = \{r \in \mathbb R^3, S = [r]_{\times } \in \mathbb R^{3 \times 3}\} \\ S = [r]_{\times} =\begin{bmatrix} 0 & -r_3 & r_2 \\ r_3 & 0 & -r_1 \\ -r_2 & r_1 & 0 \end{bmatrix}
          • se(3)的性质(刚体变换:旋转+平移向量)
            • se(3)={e=[tr]∈R6,t∈R3,r∈so(3),[e]×=[[r]×0Tt0]∈R4×4}se(3) = \{e= \begin{bmatrix} t \\ r \end{bmatrix} \in \mathbb R^6, \; t \in \mathbb R^3, r \in so(3), \; [e]_{\times} = \begin{bmatrix} [r]_{\times} & t \\ 0^T & 0 \end{bmatrix} \in \mathbb R^{4 \times 4} \}
            • se(3)组成:3个平移分量+3个旋转分量
            • 其旋转分量与so(3)相同
            • 平移是普通的向量,但不是SE(3)上的平移分量
            • [e]×[e]_{\times}不是反对称矩阵,只是保留了相同的记法
          • 把李代数理解为向量形式或矩阵形式都可以,但向量形式更加自然些

          5.5 指数映射

          • 设AA是生成矩阵(导数分量)的线性组合(很明显,AA为反对称矩阵):

            A=∑i=03αiGi

            A = \sum_{i=0}^3 \alpha_i G_i

          • exe^x的泰勒展开式:
            ex=1+x+12x2+16x3+⋅⋅⋅+1n!xn

            e^x = 1 + x + \frac {1}{2}x^2 + \frac {1}{6}x^3 + \cdot \cdot \cdot + \frac {1}{n!}x^n

          • eAe^A泰勒展开式:
            M=eA=I+A+12A2+16A3+⋅⋅⋅+1n!An

            M= e^A = I + A + \frac {1}{2}A^2 + \frac {1}{6}A^3 + \cdot \cdot \cdot + \frac {1}{n!}A^n

            • M以这种方式计算,它必定是SO(3)SO(3)的成员,即M为一个旋转矩阵
            • 任何SO(3)中的成员,都能以这种方式进行计算
          • 为什么M=eAM=e^A必定是SO(3)SO(3) 的成员
            eA=limn→∞(I+1nA)n

            e^A = \lim_{n \to \infty} \left(I + \frac {1}{n}A \right)^n

            • 当n无穷大时,1nA\frac {1}{n}A变为无穷小,因此I+1nAI + \frac {1}{n}A 成为SO(3)SO(3)的成员(
            • 因为:R=I+α1G1+α2G2+α3G3(α1,α2,α3都无穷小)R = I + \alpha_1G_1 + \alpha_2G_2 + \alpha_3G_3 \quad(\alpha_1,\alpha_2,\alpha_3都无穷小 )
            • 次数越高,eAe^A越接近R,如下图所示:
            • 举例说明:
          • 结论:
            • 指数映射:建立了在单位矩阵处的导数(如速度)与群(SO(3)或SE(3))(SO(3)或SE(3))成员间的关系,它可以不同的方程进行表示:

              A=∑iαiGi(表示在单位矩阵处的速度)dRdt=ARR(0)=IR(t)=etAR(1)=eA

              A = \sum_i \alpha_i G_i (表示在单位矩阵处的速度) \\ \frac {dR}{dt} = AR \\ R(0) = I \\ R(t) = e^{tA} \\ R(1) = e^A

          • dRdt=AR\frac {dR}{dt} = AR的由来:
            • 任意旋转矩阵满足:

              RRT=I

              RR^T = I

            • 考虑R随着时间变化:
              R(t)R(t)T=I

              R(t)R(t)^T = I

            • 两侧对时间求导:
              dRdtR(t)T+R(t)(dRdt)T=0

              \frac {dR}{dt} R(t)^T + R(t) (\frac {dR}{dt})^T = 0

            • 整理得:
              dRdtR(t)T=−((dRdt)R(t)T)T

              \frac {dR}{dt} R(t)^T = - \left((\frac {dR}{dt})R(t)^T \right)^T

            • 可以看出这是一个反对称矩阵,记:
              dRdtR(t)T=A

              \frac {dR}{dt} R(t)^T = A

            • 两侧右乘R(t),得:
              dRdt=AR

              \frac {dR}{dt} = AR

            • 可以看到,对R(t)求导后,左侧多出一个反对称矩阵A
              A=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥

              A = \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix}

          5.6 SO(3)的生成与叉乘(Corss Product

          • v1×v2=⎡⎣⎢abc⎤⎦⎥×⎡⎣⎢def⎤⎦⎥=[a]×b=⎡⎣⎢0c−b−c0ab−a0⎤⎦⎥⎡⎣⎢def⎤⎦⎥=⎡⎣⎢bf−cecd−afae−bd⎤⎦⎥ v_1 \times v_2 = \begin{bmatrix}a \\b \\c \\\end{bmatrix} \times \begin{bmatrix}d \\e \\f \\\end{bmatrix} = [a]_{\times}b = \begin{bmatrix}0 & -c & b \\c & 0 & -a \\-b & a & 0 \\\end{bmatrix} \begin{bmatrix}d \\e \\f \\\end{bmatrix} = \begin{bmatrix}bf-ce \\cd-af \\ae-bd \\\end{bmatrix}

          • [a]×=⎡⎣⎢0c−b−c0ab−a0⎤⎦⎥=aG1+bG2+cG3[a]_{\times} = \begin{bmatrix}0 & -c & b \\c & 0 & -a \\-b & a & 0 \\\end{bmatrix} = aG_1 + bG_2 +cG_3

          • 这意味着SO(3)SO(3)中旋转矩阵可表示为:R=e[V]×\color {red} {R=e^{[V]_{\times}}}
          • 其参数为向量VV中的元素,这3个参数在向量VV与旋转矩阵RR间建立了一个漂亮的关系
          • 基于此,旋转矩阵的直观理解:
            • 旋转轴:此旋转以向量VV为旋转轴
            • 旋转角度:为向量VV的长度
            • 旋转方向:沿着向量方向看,顺时针方向;沿着向量相反的方向看,逆时针方向;当V=0V=0时,无旋转轴, 且旋转角度为0,即没有旋转
          • V与RV与R的关系的直观解释
            • [V]×[V]_{\times}:是在单位矩阵处的导数(即:dRdt|R=I=A=∑3iαiGi=[V]×\frac {dR}{dt} |_{R=I} = A=\sum_i^3 \alpha_i G_i=[V]_{\times}),且在单位时间后产生了旋转RR
            • [V]×[V]_{\times}:可被解释为产生一个速度向量域(velocity vector field),在空间的每一个点有一个速度向量(velocity vector)
            • 点P处的向量域(vector field):被定义为:[V]×P\color {red} {[V]_{\times}P}
            • 在旋转轴VV上的点没有速度,因为V×V=0V \times V = 0
            • 在旋转轴VV外的点有速度,它与向量VV的长度与[V]×P[V]_{\times}P的长度成正比
            • 速度域如下图所示(由[V]×[V]_{\times}建立的速度域形成一个围绕V的圆形旋转)
          • 5.7 SE(3)的生成

            • SE(3)表示欧拉变换(刚体变换),在三给空间中形成了6维流形
            • 它有3个平移生成矩阵和3个旋转生成矩阵
            • G1,G2,G3G_1, G_2, G_3:分别为沿x,y,z方向的平移生成矩阵
            • G4,G5,G6G_4, G_5, G_6:分别为绕x,y,z轴旋转的旋转生成矩阵
            • 沿x方向的平移+绕z轴的旋转=沿y方向移动旋转中心

            5.8 李括号(Lie bracket)

            • 李代数:在群的单位矩阵处的正切空间中的向量
            • 李括号:李括号=李代数+双线性反对称运算
            • 指数映射:把正切空间->(映射到)群中的元素,这样可以抓住群的局部结构
            • 矩阵A、B矩阵A、B为正切空间中的矩阵(如为生成矩阵的线性组合),则有:
              eAeB≠eBeA⇒AB≠BA

              e^Ae^B \neq e^Be^A \Rightarrow AB \neq BA

            • ABAB与BABA的差异叫做Commutator(换位子),即李括号, 表示为[A, B]:
              [A,B]=AB−BA

              [A, B] = AB - BA

            • 李括号是反对称的:
              [A,B]=−[B,A]

              [A, B] = -[B, A]

            • 生成矩阵间的关系:
              [G2,G1]=−[G1,G2]=−G3[G3,G1]=G2[G2,G3]=G1

              [G_2, G_1] = -[G_1, G_2] = -G_3 \\ [G_3, G_1] = G_2 \\ [G_2, G_3] = G_1

            5.9 李代数求导与扰动模型

            • 在SLAM实际应用中,需要对位姿进行估计
            • 李群上只有乘法,没有加法,从而无从定义导数
            • 能否利用李代数上的加法,定义李群元素的导数?基本问题是:当在李代数中做加法时,是否等价于在李群上做乘法:
              eA1eA2=eA1+A2

              e^{A_1} e^{A_2} = e^{A_1+A_2}:此等式当A1、A2A_1、A_2为矩阵时,成立吗?

            • 根据BCH线性近似,可得:

            1)左乘雅可比:

            Jl=J=sinθθI+(1−sinθθ)aaT+1−cosθθ[a]×

            J_l = J = \frac {sin \theta}{\theta}I+(1- \frac {sin \theta}{\theta})aa^T + \frac {1-cos \theta}{\theta}[a]_{\times}

            J−1l=θ2cosθ2I+(1−θ2cosθ2)aaT−θ2[a]×

            J_l^{-1}=\frac{\theta}{2} cos \frac {\theta}{2}I + (1-\frac{\theta}{2} cos \frac {\theta}{2})aa^T-\frac{\theta}{2}[a]_{\times}

            2)右乘雅可比:

            Jr(v)=Jl(−v)

            J_r(v) = J_l(-v)
            3)在李群上左乘小量时,李代数上的加法相差左雅可比的逆:

            e[△v]×e[v]×=e[v+J−1l(v)△v]×

            e^{[\bigtriangleup v]_{\times}} e^{[v]_{\times}} = e^{[v + J_l^{-1}(v) \bigtriangleup v]_{\times}}
            4)李代数上进行小量加法时, 相当于李群上左乘一个带左雅可比的量,或右乘一个带右雅可比的量

            e[v+△v]×=e[Jl△v]×e[v]×=e[v]×e[Jr△v]×

            e^{[v+\bigtriangleup v]_{\times}} = e^{[J_l \; \bigtriangleup v]_{\times}}e^{[v]_{\times}} = e^{[v]_{\times}} e^{[J_r \; \bigtriangleup v]_{\times}}
            - 通过BCH线性近似,可以定义李代数上的导数
            - 旋转后的点关于旋转的导数,不严谨地记为\color {red}{旋转后的点关于旋转的导数,不严谨地记为}:

            ∂(Rp)∂R

            \frac {\partial(Rp)}{\partial R}
            - 由于R没有加法,导数无法定义
            - 存在两种解决办法
            - R对应的李代数上加上小量,求相对于小量的变化率( 导数模型
            - 对R左乘或右乘一个小量,求相对于小量的李代数的变化率(扰动模型)\color {red}{对R左乘或右乘一个小量,求相对于小量的李代数的变化率(扰动模型)}
            - 导数模型
            - 按照定义可得:

            ∂(Rp)∂R=∂(e[v]×p)∂v=lim△v→0e[v+△v]×p−e[v]×p△v=−[Rp]×Jl

            \frac {\partial(Rp)}{\partial R} = \frac {\partial (e^{[v]_{\times}}p)}{\partial v} \\ =\lim_{\bigtriangleup v \to 0} \frac {e^{[v+\bigtriangleup v]_{\times}}p - e^{[v]_{\times}}p}{\bigtriangleup v} \\ = - [Rp]_{\times}J_l
            - 结果中含有左乘雅可比,比较复杂
            - 扰动模型
            - 左乘小量,令其李代数为0

            ∂(Rp)∂△v=lim△v→0e[△v]×e[v]×p−e[v]×p△v≈lim△v→0(1+[△v]×)e[v]×p−e[v]×p△v=lim△v→0[△v]×Rp△v=lim△v→0−[Rp]×△v△v=−[Rp]×

            \frac {\partial(Rp)}{\partial \bigtriangleup v} = \lim_{\bigtriangleup v \to 0} \frac {e^{[\bigtriangleup v]_{\times}} e^{[v]_{\times}}p - e^{[v]_{\times}}p}{\bigtriangleup v} \\ \approx \lim_{\bigtriangleup v \to 0} \frac {(1+[\bigtriangleup v]_{\times}) e^{[v]_{\times}}p - e^{[v]_{\times}}p}{\bigtriangleup v} \\ =\lim_{\bigtriangleup v \to 0} \frac {[\bigtriangleup v]_{\times}Rp}{\bigtriangleup v} = \lim_{\bigtriangleup v \to 0} \frac {-[Rp]_{\times}\bigtriangleup v}{\bigtriangleup v}\\ = - [Rp]_{\times}
            - 最终结果更为简洁,所以更实用

            5.10 总结

            • 反对称矩阵⟺三维向量\color {blue}{反对称矩阵\iff三维向量}:

              • 由于AT=−AA^T = -A,所以它主对角线元素必为0,而非对角线元素则只有三个自由度。
              • 可以把反对称矩阵对应到一个三维向量
              • 用途:它与叉积兼容,可以直接把矩阵与任意向量的乘积AbAb写成 a×ba \times b,即Ab=a×bAb = a \times b。
            • SO(3):3维旋转矩阵\color {blue}{SO(3):3维旋转矩阵}

              • SO(3):三维旋转群,其元素为旋转矩阵
              • 每对旋转矩阵求一次导数,只需左乘一个反对称矩阵\color {red}{反对称矩阵}即可
              • 由于反对称矩阵\color {red}{反对称矩阵}反映了R的导数性质,故称它在SO(3)的正切空间(tangent space)上
            • so(3):3维旋转向量或3维反对称矩阵\color {blue}{so(3):3维旋转向量或 3维反对称矩阵}

              • so(3):是一个由三维向量(即旋转向量\color {red}{旋转向量})组成的集合,每个向量对应到一个反对称矩阵,可以表达旋转矩阵的导数
              • 反映了R的导数性质
              • 旋转轴:旋转向量的方向为旋转轴
              • 旋转弧度:旋转向量的长度为旋转的弧度
              • 描述了李群SO(3)SO(3)中元素的局部性质
              • [a,b]=AB−BA[a, b]=AB-BA (A、B分别为向量a、b 对应的反对称矩阵)
              • [A,B]=−[B,A][A,B] = -[B, A]
              • aaT=AA+||a||2I3×3aa^T = AA+||a||^2I_{3 \times 3}
            • 指数映射(so(3)⇒SO(3))(罗德里格斯公式)\color {blue}{指数映射(so(3) \Rightarrow SO(3)) (罗德里格斯公式)}

              • R(t)=etA=e[V]×,A和[V]×都为反对称矩阵R(t) = e^{tA} = e^{[V]_{\times}},\quad A和[V]_{\times}都为反对称矩阵
                1)设r为旋转向量,则旋转角度(弧度):θ=||r||  1) 设r为旋转向量,则旋转角度(弧度):\theta = ||r|| \
                2)把r转换为单位向量:r=1θr 2) 把r转换为单位向量:r = \frac{1}{\theta} r

                3)e[V]×=eθ[r]×=I+θ[r]×+12!θ2[r]2×+⋅⋅⋅+1n!θn[r]n×=rrT+(θ−13!θ3+15!θ5+⋅⋅⋅)[r]×−(1−12!θ2+14!θ4−⋅⋅⋅)[r]2×=[r]2×+I+sin(θ)[r]×−cos(θ)[r]2×=(1−cos(θ))[r]2×+I+sin(θ)[r]×=cos(θ)I+(1−cos(θ))rrT+sin(θ)[r]×

                3) e^{[V]_{\times}} =e^{\theta [r]_{\times}} = I + \theta [r]_{\times} + \frac{1}{2!}\theta^2 [r]_{\times}^2 +\cdot\cdot\cdot+ \frac{1}{n!}\theta^n [r]_{\times}^n = rr^T+\left(\theta - \frac {1}{3!} \theta^3 + \frac {1}{5!} \theta^5+\cdot\cdot\cdot\right)[r]_{\times} \\-\left(1-\frac{1}{2!}\theta^2 + \frac{1}{4!}\theta^4 - \cdot\cdot\cdot \right)[r]_{\times}^2 \\= [r]_{\times}^2 + I + sin(\theta) [r]_{\times} - cos(\theta) [r]_{\times}^2 \\= (1-cos(\theta))[r]_{\times}^2 + I + sin(\theta)[r]_{\times} \\=cos(\theta)I + (1-cos(\theta))rr^T + sin(\theta)[r]_{\times}

              • 4) 又根据罗德里格斯(Rodrigues)公式:R=cos(θ)I+(1−cos(θ))rrT+sin(θ)[r]×R= cos(\theta)I + (1-cos(\theta))rr^T + sin(\theta)[r]_{\times}

              • (5)所以结论为:

                R=eθ[r]×=e[V]×

                R=e^{\theta [r]_{\times}}=e^{[V]_{\times}}

              • 每个SO(3)中的元素,都可以找到so(3)一个或多个元素与之对应

            • so(3)与SO(3)的关系\color {blue}{so(3)与SO(3)的关系}

              • 三维旋转表示: 除了采用旋转矩阵描述外,还可以用旋转向量来描述
              • 旋转向量的长度(模)表示绕轴逆时针旋转的角度(弧度)
              • 旋转向量⇒旋转矩阵旋转向量 \Rightarrow 旋转矩阵:可以通过罗德里格斯(Rodrigues)(指数映射)\color {red}{罗德里格斯(Rodrigues)(指数映射)}变换进行转换
                1)设r为旋转向量,则旋转角度(弧度):θ=||r||2)把r转换为单位向量:r=1θr3)则旋转矩阵R为:R=cos(θ)I+(1−cos(θ))rrT+sin(θ)[r]×4)OpenCV实现函数:intcvRodrigues2(constCvMat∗src,CvMat∗dst,CvMat∗jacobian=0);

                1) 设r为旋转向量,则旋转角度(弧度):\theta = ||r|| \\ 2) 把r转换为单位向量:r = \frac{1}{\theta} r \\ 3) 则旋转矩阵R为:R= cos(\theta)I + (1-cos(\theta))rr^T + sin(\theta)[r]_{\times} \\ 4) OpenCV实现函数:int\; cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian=0 );

              • 旋转矩阵⇒旋转向量旋转矩阵 \Rightarrow 旋转向量:
                1)弧度:

                θ=arccos(tr(R)−12)

                \theta = arccos \left(\frac {tr(R) -1}{2} \right)
                2)旋转轴:

                Rn=n

                Rn = n
                3)旋转向量:

                v=θn

                v= \theta n

              • 旋转向量可以视为旋转矩阵导数,指导如何在旋转矩阵中进行微积分运算

              • 旋转矩阵:9个自由度,有正交性和行列式值为+1的约束
              • 旋转向量:3个自由度,没有约束
              • 旋转向量与旋转矩阵:只是表达方式的不同,但表达的东西可以是同一个
            • 指数映射+对数映射关系图\color {blue}{指数映射+对数映射关系图}

            6. 雅可比矩阵与海森矩阵

            6.1 雅可比矩阵(Jacobian Matrix)

            • Reduced Jacobian matrix :降阶雅可比矩阵

            • 雅可比矩阵\color{red}{雅可比矩阵}:即一阶导数矩阵(向量对向量的一阶微分矩阵\color{maroon}{向量对向量的一阶微分矩阵})

            • 重要性\color{red}{重要性}:它体现了一个可微方程在给定点的最优线性逼近。因此,雅可比矩阵类似于多元函数的导数。

            • 应用领域\color{red}{应用领域}:用于向量微积分

            • 雅可比矩阵\color{red}{雅可比矩阵}:是函数的一阶偏导数以一定方式排列成的矩阵

            • 雅可比矩阵相关的(函数与变量)\color{red}{雅可比矩阵相关的(函数与变量)}:多个函数(m个)+多个变量(n个) (映射:Rn→Rm)(映射:R^n \rightarrow R^m)

            • 定义\color{red}{定义}:假设某函数从RnR^n 映射到 Rm{R} ^{m}, 其雅可比矩阵是从 RnR^n 到 Rm{R} ^{m} 的线性映射,其重要意义在于它表现了一个多变量向量函数\color{blue}{向量函数}的最佳线性逼近。因此,雅可比矩阵类似于单变量函数的导数\color{blue}{类似于单变量函数的导数}。

            • 举例:假设F:Rn→RmF:R^n→R^m 是一个从nn维欧氏空间映射到到mm维欧氏空间的函数。这个函数由mm个实函数组成: y1(x1,...,xn),...,ym(x1,...,xn)y_1(x_1, ..., x_n), ..., y_m(x_1, ...,x_n)。这些函数的偏导数(如果存在)可以组成一个m行n列的矩阵(m×nm \times n),这就是所谓的雅可比矩阵:

              ⎡⎣⎢⎢⎢⎢⎢⎢⎢∂y1∂x1⋮∂ym∂x1⋯⋱⋯∂y1∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥

              \begin{bmatrix} \frac {\partial y_1}{\partial x_1} & \cdots & \frac {\partial y_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac {\partial y_m}{\partial x_1} & \cdots & \frac {\partial y_m}{\partial x_n} \\ \end{bmatrix}

            • 符号表示\color{red}{符号表示}:

              JF(x1,⋯,xn),或者∂(y1,⋯,ym∂(x1,⋯,xn

              J_F(x_1, \cdots, x_n), \quad 或者\frac {\partial(y_1, \cdots, y_m}{\partial(x_1, \cdots, x_n}
              1)F:为其映射的向量函数1)F:为其映射的向量函数
              2)(x1,⋯,xn):为多变量2)(x_1, \cdots, x_n):为多变量
              3)JF(x1,⋯,xn)3)J_F(x_1,\cdots,x_n):是一个线性映射(矩阵的本质就是线性变换),表示向量函数F在P点(x1,⋯,xn)(x_1, \cdots, x_n)处的Jacobian矩阵(一阶导数矩阵)

            • 用途\color{red}{用途}:

              • 如果pp是Rn {R} ^{n} 中的一点,FF在pp点可微分,根据高等微积分, JF(p)J_{F(p)} 是在这点(pp)的导数。
              • 在此情况下,JF(p)J_{F(p)}这个线性映射即FF 在点pp附近的最优线性逼近,也就是说当 xx 足够靠近点pp时,我们有:
              • F(x)≈F(p)+JF(p)⋅(x−p)F(x) \approx F(p) + J_{F(p)} \cdot (x-p)

            6.2 海森矩阵(Hessian Matrix)

            • 海森矩阵用途:被应用于牛顿法解决的大规模优化问题
            • 海森矩阵变量与函数一个函数+多个变量 (映射:Rn→R)(映射:R^n \rightarrow R)
            • 海森矩阵定义:(Hessian matrix 或 Hessian)是一个多变量实值函数的二阶偏导数组成的方块矩阵,假设有一实数函数f(x1,x2,...,xn)f(x_1, x_2, ..., x_n),如果ff 所有的二阶偏导数都存在,则海林矩阵H为:
            • 其x=(x1,x2,...,xn)x=(x_1, x_2, ... , x_n)
            • 当函数 ff二阶连续可导时,Hessian矩阵H在临界点x0x_0上是一个 n×nn\times n阶的对称矩阵。
              • 当H是正定矩阵时,临界点x0x_0是一个局部的极小值。
              • 当H是负定矩阵时,临界点x0x_0 是一个局部的极大值。
              • H=0,需要更高阶的导数来帮助判断。
              • 在其余情况下,临界点x0x_0不是局部极值。

            6.3 雅可比矩阵与海森矩阵的比较

            矩阵属性 雅可比矩阵 (Jacobian Matrix) 海森矩阵 (Hessian Matrix)
            用途 1)关节型机器人:关节空间微小运动dθd\theta与手部作业空间微小位移dY的关系
            2)非线性最小二乘
            yy
            方程 函数向量F由m个实值函数组成:

            ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪y1=f1(x1,⋯,xn)y2=f2(x1,⋯,xn)⋯ym=fm(x1,⋯,xn)

            \left\{ \begin{array}{c} y_1 = f_1(x_1, \cdots, x_n) \\ y_2 = f_2(x_1, \cdots, x_n) \\ \cdots \\ y_m = f_m(x_1, \cdots, x_n) \end{array} \right. 也可记为:Y=F(X)Y=F(X)
            Y=(y1,⋯,ym)TY= (y_1, \cdots, y_m)^T
            F=(f2,⋯,fm)TF= (f_2, \cdots, f_m)^T
            X=(x1,⋯,xn)TX= (x_1, \cdots, x_n)^T

            只有一个实值函数组成:
            y=f(x1,⋯,xn)\begin{array}{c} y = f(x_1, \cdots, x_n) \end{array}
            X=(x1,⋯,xn)X = (x_1, \cdots, x_n)
            实值函数个数 m\color {maroon} {m} (即m个n元素函数 ) 1\color {maroon} {1} (即1个n元函数)
            微分方程组
            ⎡⎣⎢⎢dy1⋮dym⎤⎦⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1⋮∂fm∂x1⋯⋱⋯∂f1∂xn⋮∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢dx1⋮dxn⎤⎦⎥⎥

            \begin{bmatrix} dy_1 \\ \vdots \\ dy_m \end{bmatrix} = \begin{bmatrix} \frac {\partial f_1}{\partial x_1} & \cdots & \frac {\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac {\partial f_m}{\partial x_1} & \cdots & \frac {\partial f_m}{\partial x_n} \\ \end{bmatrix} \begin{bmatrix} dx_1 \\ \vdots \\ dx_n \end{bmatrix}
            即:dY=JF(X)dX方程组是一个关于微分的线性方程组,其系数矩阵即雅可比矩阵即:dY=J_F(X) dX \\ 方程组是一个关于微分的线性方程组, 其系数矩阵即雅可比矩阵

            定义
            JF(X)=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1⋮∂fm∂x1⋯⋱⋯∂f1∂xn⋮∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥

            J_F(X) = \begin{bmatrix} \frac {\partial f_1}{\partial x_1} & \cdots & \frac {\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac {\partial f_m}{\partial x_1} & \cdots & \frac {\partial f_m}{\partial x_n} \\ \end{bmatrix}

            ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x1∂x1∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x2∂x2⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂xn∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

            \begin{bmatrix} \frac {\partial^2 f}{\partial x_1 \partial x_1} & \frac {\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac {\partial^2 f}{\partial x_1 \partial x_n} \\ \frac {\partial^2 f}{\partial x_2 \partial x_1} & \frac {\partial^2 f}{\partial x_2 \partial x_2} & \cdots & \frac {\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac {\partial^2 f}{\partial x_n \partial x_1} & \frac {\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac {\partial^2 f}{\partial x_n \partial x_n} \\ \end{bmatrix}

            导数阶数 一阶偏导数 二阶偏导数
            矩阵类型 m×nm \times n (一般不为方阵) n×nn \times n (方阵)
            映射
            Rn→RmJ为Y随X变化而变化的线性变换

            R^n \rightarrow {R} ^{m} \\ J为Y随X变化而变化的线性变换

视觉惯性单目SLAM (二) 算法基础知识相关推荐

  1. 视觉惯性单目SLAM (三)优化方法

    1. 最小二乘法 最小二乘法:Least Squares Method (LSM) 函数: y=f(x,θ) y = f ( x , θ ) y=f(x,\theta) θ θ \theta为待估参数 ...

  2. 视觉惯性单目SLAM (一)算法描述

    1.视觉惯性ORB-SLAM基本知识 视觉惯性:Visual-Inertial (VI) VI ORB-SLAM:视觉惯性ORB-SLAM VI ORB-SLAM输入: IMU数据(用B表示,加速度: ...

  3. 视觉惯性单目SLAM (五)矩阵微积分

    1. 基本概念 矩阵微积分:Matrix Calculus 微积分的核心思想:局部线性化\color {red}{微积分的核心思想:局部线性化} 矩阵函数(包括向量函数)对标量的导数:等于它的各个元素 ...

  4. Attention SLAM:一种从人类注意中学习的视觉单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡椒味的口香糖 来源丨GiantPandaCV 0. 引言 当人们在一个环境中四处走动时,他们通 ...

  5. 单目slam基础 特点匹配 光流匹配 单应变换恢复变换矩阵 本质矩阵恢复变换矩阵 深度滤波

    非滤波单目slam基础 非滤波方法的单目视觉SLAM系统综述 论文 直接法 特征点法 混合法区别与联系 按照 2D−2D 数据关联方式的不同 ,视觉定位方法可以分为直接法.非直接法和混合法1. 直接法 ...

  6. 【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统

    文章:Inertial-Only Optimization for Visual-Inertial Initialization 作者:Carlos Campos, Jose M.M. Montiel ...

  7. 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统

    原作:Geoffrey Pascoe 翻译:Frank 转载请注明出处 水平有限,错误请指出 NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统 摘要 本文提出了一种基于归一化信息距离(NID ...

  8. 基于交汇的多机器人协作单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨泡泡机器人SLAM 标题:Multirobot Collaborative Monocular ...

  9. PSL‑SLAM:PSL‑SLAM: a monocular SLAM system using points and structure lines in Manh 曼哈顿世界中的点线单目SLAM

    文章下载地址:https://download.csdn.net/download/weixin_50508111/85811572 一.文章简介 1. 文章类型/时间/作者/所属单位: 期刊论文/2 ...

最新文章

  1. ASP.NET常用函数
  2. master page頁面如何用js來做輸入驗證
  3. WSDM 2022 | 中科院、腾讯、北航提出:跨领域推荐中的个性化迁移用户兴趣偏好...
  4. Data guard概念篇一(转载)
  5. 知乎嵌入式大杂烩:学习STM32的一点经验分享
  6. mysql 业务账户_mysql的事务
  7. Qt之程序发布以及打包成exe安装包
  8. leetcode184. 部门工资最高的员工(SQL) 连接+嵌套查询
  9. 最高检:教职工有性侵记录的,不得录用
  10. openlayers 点线面
  11. 大学学计算机考试大一,大学计算机基础大一考试必备题库[1].pdf
  12. linux网桥内核实现分析,Linux网桥实现分析
  13. Android下磁盘分区表损坏,硬盘分区表修复,教您硬盘分区表损坏怎么修复
  14. 必须重启计算机才能关闭用户账户控制,Win10系统怎么彻底关闭用户帐户控制?...
  15. 电信光猫 TEWA 500AG 破解 超密 2020-3-21
  16. OA项目5:系统管理之岗位管理
  17. tipask 不能正常解析
  18. 目标跟踪:Deepsort--卡尔曼滤波、匈牙利匹配、马氏距离、欧氏距离、级联匹配、reid
  19. 关于(object sender, EventArgs e)
  20. shell字符串切割 去除文件名后缀

热门文章

  1. 计算机与资源管理器有何区别,资源管理器与我的电脑有什么不同.PPT
  2. 【飞行器】模拟四旋翼飞行器飞行含Matlab源码
  3. 牛客网SQL刷题问题汇总
  4. Springboot配置保存日志文件
  5. Ubuntu下基于Wine环境安装Visio2007
  6. 论文参考文献中括号+数字转上标
  7. php解码 u7f3a u5c11,认识 Linux
  8. vs全项目搜索关键词
  9. ios 倒数器_如何利用ps绘制IOS7风格的倒数计时器
  10. 【Python】1.生成+统计+保存调查问卷数据