视觉惯性单目SLAM (二) 算法基础知识
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\pm b = \sum_{i=0}^3 (a_i \pm b_i)
2.2 向量内积/点乘(结果为实数)
a \cdot b = a^Tb = \sum_{i=0}^3 a_i b_i = |a||b|cos(a,b)
2.3 向量外积/叉乘(结果为向量)
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的特征向量都是纯虚数,奇数阶的反对称矩阵是奇异的(不可逆)
- B:块对角矩阵,其形式为:
- 向量的反对称矩阵\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 \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} \\
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+tR= \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 轴的旋转
- RR对tt的导数为:
李代数:与李群对应的一种结构,位于向量空间。
- 记作: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
- 指数映射:建立了在单位矩阵处的导数(如速度)与群(SO(3)或SE(3))(SO(3)或SE(3))成员间的关系,它可以不同的方程进行表示:
- 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} r3)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=nRn = n
3)旋转向量:v=θnv= \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,⋯,xnJ_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变化而变化的线性变换
- 灰色的为坐标系1 (V1=(322)TV_1 = (3 \quad 2 \quad 2)^T),黑色的为坐标系2 (V2=(112)TV_2 = (1 \quad 1 \quad 2)^T
视觉惯性单目SLAM (二) 算法基础知识相关推荐
- 视觉惯性单目SLAM (三)优化方法
1. 最小二乘法 最小二乘法:Least Squares Method (LSM) 函数: y=f(x,θ) y = f ( x , θ ) y=f(x,\theta) θ θ \theta为待估参数 ...
- 视觉惯性单目SLAM (一)算法描述
1.视觉惯性ORB-SLAM基本知识 视觉惯性:Visual-Inertial (VI) VI ORB-SLAM:视觉惯性ORB-SLAM VI ORB-SLAM输入: IMU数据(用B表示,加速度: ...
- 视觉惯性单目SLAM (五)矩阵微积分
1. 基本概念 矩阵微积分:Matrix Calculus 微积分的核心思想:局部线性化\color {red}{微积分的核心思想:局部线性化} 矩阵函数(包括向量函数)对标量的导数:等于它的各个元素 ...
- Attention SLAM:一种从人类注意中学习的视觉单目SLAM
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡椒味的口香糖 来源丨GiantPandaCV 0. 引言 当人们在一个环境中四处走动时,他们通 ...
- 单目slam基础 特点匹配 光流匹配 单应变换恢复变换矩阵 本质矩阵恢复变换矩阵 深度滤波
非滤波单目slam基础 非滤波方法的单目视觉SLAM系统综述 论文 直接法 特征点法 混合法区别与联系 按照 2D−2D 数据关联方式的不同 ,视觉定位方法可以分为直接法.非直接法和混合法1. 直接法 ...
- 【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统
文章:Inertial-Only Optimization for Visual-Inertial Initialization 作者:Carlos Campos, Jose M.M. Montiel ...
- 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统
原作:Geoffrey Pascoe 翻译:Frank 转载请注明出处 水平有限,错误请指出 NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统 摘要 本文提出了一种基于归一化信息距离(NID ...
- 基于交汇的多机器人协作单目SLAM
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨泡泡机器人SLAM 标题:Multirobot Collaborative Monocular ...
- 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 ...
最新文章
- ASP.NET常用函数
- master page頁面如何用js來做輸入驗證
- WSDM 2022 | 中科院、腾讯、北航提出:跨领域推荐中的个性化迁移用户兴趣偏好...
- Data guard概念篇一(转载)
- 知乎嵌入式大杂烩:学习STM32的一点经验分享
- mysql 业务账户_mysql的事务
- Qt之程序发布以及打包成exe安装包
- leetcode184. 部门工资最高的员工(SQL) 连接+嵌套查询
- 最高检:教职工有性侵记录的,不得录用
- openlayers 点线面
- 大学学计算机考试大一,大学计算机基础大一考试必备题库[1].pdf
- linux网桥内核实现分析,Linux网桥实现分析
- Android下磁盘分区表损坏,硬盘分区表修复,教您硬盘分区表损坏怎么修复
- 必须重启计算机才能关闭用户账户控制,Win10系统怎么彻底关闭用户帐户控制?...
- 电信光猫 TEWA 500AG 破解 超密 2020-3-21
- OA项目5:系统管理之岗位管理
- tipask 不能正常解析
- 目标跟踪:Deepsort--卡尔曼滤波、匈牙利匹配、马氏距离、欧氏距离、级联匹配、reid
- 关于(object sender, EventArgs e)
- shell字符串切割 去除文件名后缀