VINS——初始化过程

1 前言

初始化总体流程如下

  • 旋转外参数 q b c \mathbf{q}_{b c} qbc 未知, 则先估计旋转外参数.
  • 利用旋转约束估计陀螺仪 bias.

q c 0 b k = q c 0 c k ⊗ q b c − 1 \mathbf{q}_{c_{0} b_{k}}=\mathbf{q}_{c_{0} c_{k}} \otimes \mathbf{q}_{b c}^{-1} qc0bk=qc0ckqbc1

  • 利用平移约束估计重力方向,速度,以及尺度初始值.

s p ‾ c 0 b k = s p ‾ c 0 c k − R c 0 b k p b c s \overline{\mathbf{p}}_{c_{0} b_{k}}=s \overline{\mathbf{p}}_{c_{0} c_{k}}-\mathbf{R}_{c_{0} b_{k}} \mathbf{p}_{b c} spc0bk=spc0ckRc0bkpbc

  • 对重力向量 g c 0 \mathrm{g}^{c_{0}} gc0 进行进一步优化.
  • 求解世界坐标系 w w w 和初始相机坐标系 c 0 c_{0} c0 之间的旋转矩阵 q w c 0 \mathbf{q}_{w c_{0}} qwc0, 并将轨迹对齐到世界坐标系。

关于字母下标

  • 从左向右看下标,例如: q c 0 b k \mathbf{q}_{c_{0} b_{k}} qc0bk表示在c0相机坐标系下,从c0到bk坐标系的旋转。
  • 根据IMU放置的位置特殊性,这里可以认为body坐标系和imu坐标系重叠了,当做一个坐标系理解。

STEP1 估计外参旋转参数 q b c \bf {q}_{bc} qbc(基于旋转约束)

相邻两时刻 k , k + 1 k, k+1 k,k+1 之间有: IMU 旋转积分 q b k b k + 1 \mathbf{q}_{b_{k} b_{k+1}} qbkbk+1, 视觉测量 q c k c k + 1 \mathbf{q}_{c_{k} c_{k+1}} qckck+1 。则有:

VINS——初始化过程_第1张图片

所以
q b k b k + 1 ⊗ q b c = q b c ⊗ q c k c k + 1 \mathbf{q}_{b_{k} b_{k+1}} \otimes \mathbf{q}_{b c}=\mathbf{q}_{b c} \otimes \mathbf{q}_{c_{k} c_{k+1}} qbkbk+1qbc=qbcqckck+1
上式可写成:
( [ q b k b k + 1 ] L − [ q c k c k + 1 ] R ) q b c = Q k + 1 k ⋅ q b c = 0 \left(\left[\mathbf{q}_{b_{k} b_{k+1}}\right]_{L}-\left[\mathbf{q}_{c_{k} c_{k+1}}\right]_{R}\right) \mathbf{q}_{b c}=\mathbf{Q}_{k+1}^{k} \cdot \mathbf{q}_{b c}=\mathbf{0} ([qbkbk+1]L[qckck+1]R)qbc=Qk+1kqbc=0

其中, [ ⋅ ] L , [ ⋅ ] R [\cdot]_{L},[\cdot]_{R} []L,[]R 表示 left and right quaternion multiplication 。

将多个时刻线性方程(6)累计起来,并加上鲁棒核权重得到:
[ w 1 0 ⋅ Q 1 0 w 2 1 ⋅ Q 2 1 ⋮ w N N − 1 ⋅ Q N N − 1 ] q b c = Q N ⋅ q b c = 0 \left[\begin{array}{c} w_{1}^{0} \cdot \mathbf{Q}_{1}^{0} \\ w_{2}^{1} \cdot \mathbf{Q}_{2}^{1} \\ \vdots \\ w_{N}^{N-1} \cdot \mathbf{Q}_{N}^{N-1} \end{array}\right] \mathbf{q}_{b c}=\mathbf{Q}_{N} \cdot \mathbf{q}_{b c}=\mathbf{0} w10Q10w21Q21wNN1QNN1qbc=QNqbc=0
其中:
w k + 1 k = { 1 , r k + 1 k <  threshold   threshold  r k + 1 k ,  otherwise  w_{k+1}^{k}=\left\{\begin{array}{ll} 1, & r_{k+1}^{k}<\text { threshold } \\ \frac{\text { threshold }}{r_{k+1}^{k}}, & \text { otherwise } \end{array}\right. wk+1k={1,rk+1k threshold ,rk+1k< threshold  otherwise 
由旋转矩阵和轴角之间的关系tr(R) = 1 + 2 cos θ,能得到角度误差 r的计算为:
r k + 1 k = acos ⁡ ( ( tr ⁡ ( R ^ b c − 1 R b k b k + 1 − 1 R ^ b c R c k c k + 1 ) − 1 ) / 2 ) r_{k+1}^{k}=\operatorname{acos}\left(\left(\operatorname{tr}\left(\hat{\mathbf{R}}_{b c}^{-1} \mathbf{R}_{b_{k} b_{k+1}}^{-1} \hat{\mathbf{R}}_{b c} \mathbf{R}_{c_{k} c_{k+1}}\right)-1\right) / 2\right) rk+1k=acos((tr(R^bc1Rbkbk+11R^bcRckck+1)1)/2)

注意:

  • 带上冒号的表示估计值
  • 求解同样采用 SVD 分解,即最小奇异值对应的奇异向量。(如果倒数第二个奇异值比较小,那么表示估计的值并不是特别有效,噪声太大)

STEP2 估计陀螺仪bias(基于旋转约束)

这里认为相机估计是准确的,陀螺仪被认为不准确(带有bias)

如果外参数 q b c \mathbf{q}_{b c} qbc 已标定好,利用旋转约束,可估计陀螺仪 bias:

VINS——初始化过程_第2张图片

arg ⁡ min ⁡ δ b g ∑ k ∈ B ∥ 2 ⌊ q c 0 b k + 1 − 1 ⊗ q c 0 b k ⊗ q b k b k + 1 ⌋ x y z ∥ 2 \arg \min _{\delta \mathbf{b} g} \sum_{k \in B}\left\|2\left\lfloor\mathbf{q}_{c_{0} b_{k+1}}^{-1} \otimes \mathbf{q}_{c_{0} b_{k}} \otimes \mathbf{q}_{b_{k} b_{k+1}}\right\rfloor_{x y z}\right\|^{2} argδbgminkB2qc0bk+11qc0bkqbkbk+1xyz2
其中, B B B 表示所有的图像关键坝集合,另有预积分的一阶泰勒近似:
q b k b k + 1 ≈ q ^ b k b k + 1 ⊗ [ 1 1 2 J b 9 q δ b g ] \mathbf{q}_{b_{k} b_{k+1}} \approx \hat{\mathbf{q}}_{b_{k} b_{k+1}} \otimes\left[\begin{array}{c} 1 \\ \frac{1}{2} \mathbf{J}_{b^{9}}^{\mathbf{q}} \delta \mathbf{b}^{g} \end{array}\right] qbkbk+1q^bkbk+1[121Jb9qδbg]
公式为普通的最小二乘问题,求取雅克比矩阵,构建正定方程 H X = b \mathbf{H X}=\mathbf{b} HX=b 即可以求解。

注意这里是将bias的的bias积分进入累加的

STEP3 估计重力方向,速度和尺度(利用平移约束)

几何约束(前期知识)

考虑相机坐标系 c 0 c_{0} c0 为世界坐标系, 则利用外参数 q b c , t b c \mathbf{q}_{b c}, \mathbf{t}_{b c} qbc,tbc 构建等式
q c 0 b k = q c 0 c k ⊗ q b c − 1 s p ‾ c 0 b k = s p ‾ c 0 c k − R c 0 b k p b c \begin{aligned} \mathbf{q}_{c_{0} b_{k}} &=\mathbf{q}_{c_{0} c_{k}} \otimes \mathbf{q}_{b c}^{-1} \\ s \overline{\mathbf{p}}_{c_{0} b_{k}} &=s \overline{\mathbf{p}}_{c_{0} c_{k}}-\mathbf{R}_{c_{0} b_{k}} \mathbf{p}_{b c} \end{aligned} qc0bkspc0bk=qc0ckqbc1=spc0ckRc0bkpbc
其中, s s s 为尺度因子, p ‾ \overline{\mathbf{p}} p 表示非米制 单位的轨迹。上面等式等价于
p ‾ c 0 b k = p ‾ c 0 c k − 1 s R c 0 b k p b c p ‾ c 0 c k = 1 s R c 0 b k p b c + p ‾ c 0 b k \begin{array}{l} \overline{\mathbf{p}}_{c_{0} b_{k}}=\overline{\mathbf{p}}_{c_{0} c_{k}}-\frac{1}{s} \mathbf{R}_{c_{0} b_{k}} \mathbf{p}_{b c} \\ \overline{\mathbf{p}}_{c_{0} c_{k}}=\frac{1}{s} \mathbf{R}_{c_{0} b_{k}} \mathbf{p}_{b c}+\overline{\mathbf{p}}_{c_{0} b_{k}} \end{array} pc0bk=pc0cks1Rc0bkpbcpc0ck=s1Rc0bkpbc+pc0bk

需要估计的变量
X I = [ v 0 b 0 , v 1 b 1 , ⋯ v n b n , g c 0 , s ] ⊤ \mathcal{X}_{I}=\left[\mathbf{v}_{0}^{b_{0}}, \mathbf{v}_{1}^{b_{1}}, \cdots \mathbf{v}_{n}^{b_{n}}, \mathbf{g}^{c_{0}}, s\right]^{\top} XI=[v0b0,v1b1,vnbn,gc0,s]

其中:

  • v k b k \mathbf{v}_{k}^{b_{k}} vkbk 表示 k k k 时刻 body 坐标系的速度在 body 坐标系下的表示。
  • g c 0 \mathrm{g}^{c_{0}} gc0 为重力向量在第 0 帧相机坐标系下的表示。
  • s s s 表示尺度因子,将视觉轨迹拉伸到米制单位。

回顾:预积分量约束
α b i b j = q b i w ( p w b j − p w b i − v i w Δ t + 1 2 g w Δ t 2 ) β b i b j = q b i w ( v j w − v i w + g w Δ t ) \begin{array}{l} \boldsymbol{\alpha}_{b_{i} b_{j}}=\mathbf{q}_{b_{i} w}\left(\mathbf{p}_{w b_{j}}-\mathbf{p}_{w b_{i}}-\mathbf{v}_{i}^{w} \Delta t+\frac{1}{2} \mathbf{g}^{w} \Delta t^{2}\right) \\ \boldsymbol{\beta}_{b_{i} b_{j}}=\mathbf{q}_{b_{i} w}\left(\mathbf{v}_{j}^{w}-\mathbf{v}_{i}^{w}+\mathbf{g}^{w} \Delta t\right) \end{array} αbibj=qbiw(pwbjpwbiviwΔt+21gwΔt2)βbibj=qbiw(vjwviw+gwΔt)
将世界坐标系 w w w 换成相机初始时刻坐标系 c 0 c_{0} c0
α b k b k + 1 = R b k c 0 ( s ( p ‾ c 0 b k + 1 − p ‾ c 0 b k ) + 1 2 g c 0 Δ t k 2 − R c 0 b k v k b k Δ t k ) β b k b k + 1 = R b k c 0 ( R c 0 b k + 1 v k + 1 b k + 1 + g c 0 Δ t k − R c 0 b k v k b k ) \begin{aligned} \boldsymbol{\alpha}_{b_{k} b_{k+1}} &=\mathbf{R}_{b_{k} c_{0}}\left(s\left(\overline{\mathbf{p}}_{c_{0} b_{k+1}}-\overline{\mathbf{p}}_{c_{0} b_{k}}\right)+\frac{1}{2} \mathbf{g}^{c_{0}} \Delta t_{k}^{2}-\mathbf{R}_{c_{0} b_{k}} \mathbf{v}_{k}^{b_{k}} \Delta t_{k}\right) \\ \boldsymbol{\beta}_{b_{k} b_{k+1}} &=\mathbf{R}_{b_{k} c_{0}}\left(\mathbf{R}_{c_{0} b_{k+1}} \mathbf{v}_{k+1}^{b_{k+1}}+\mathbf{g}^{c_{0}} \Delta t_{k}-\mathbf{R}_{c_{0} b_{k}} \mathbf{v}_{k}^{b_{k}}\right) \end{aligned} αbkbk+1βbkbk+1=Rbkc0(s(pc0bk+1pc0bk)+21gc0Δtk2Rc0bkvkbkΔtk)=Rbkc0(Rc0bk+1vk+1bk+1+gc0ΔtkRc0bkvkbk)
将【几何约束(前期知识)】部分公式代入上面进行简单整理有:
α b k b k + 1 = s R b k c 0 ( p ‾ c 0 c k + 1 − p ‾ c 0 c k ) − R b k c 0 R c 0 b k + 1 p b c + p b c + 1 2 R b k c 0 g c 0 Δ t k 2 − v k b k Δ t k \begin{aligned} \boldsymbol{\alpha}_{b_{k} b_{k+1}}=& s \mathbf{R}_{b_{k} c_{0}}\left(\overline{\mathbf{p}}_{c_{0} c_{k+1}}-\overline{\mathbf{p}}_{c_{0} c_{k}}\right) \\ &-\mathbf{R}_{b_{k} c_{0}} \mathbf{R}_{c_{0} b_{k+1}} \mathbf{p}_{b c}+\mathbf{p}_{b c}+\frac{1}{2} \mathbf{R}_{b_{k} c_{0}} \mathbf{g}^{c_{0}} \Delta t_{k}^{2}-\mathbf{v}_{k}^{b_{k}} \Delta t_{k} \end{aligned} αbkbk+1=sRbkc0(pc0ck+1pc0ck)Rbkc0Rc0bk+1pbc+pbc+21Rbkc0gc0Δtk2vkbkΔtk
将待估计变量放到方程右边, 有:
z ^ b k + 1 b k = [ α ^ b k b k + 1 − p b c + R b k c 0 R c 0 b k + 1 p b c β ^ b k b k + 1 ] = H b k + 1 b k X I k + n b k + 1 b k \hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}=\left[\begin{array}{c} \hat{\boldsymbol{\alpha}}_{b_{k}} b_{k+1}-\mathbf{p}_{b c}+\mathbf{R}_{b_{k} c_{0}} \mathbf{R}_{c_{0} b_{k+1}} \mathbf{p}_{b c} \\ \hat{\boldsymbol{\beta}}_{b_{k} b_{k+1}} \end{array}\right]=\mathbf{H}_{b_{k+1}}^{b_{k}} \mathcal{X}_{I}^{k}+\mathbf{n}_{b_{k+1}}^{b_{k}} z^bk+1bk=[α^bkbk+1pbc+Rbkc0Rc0bk+1pbcβ^bkbk+1]=Hbk+1bkXIk+nbk+1bk
公式中:
X I k = [ v k b k , v k + 1 b k + 1 , g c 0 , s ] ⊤ H b k + 1 b k = [ − I Δ t k 0 1 2 R b k c 0 Δ t k 2 R b k c 0 ( p ‾ c k + 1 c 0 − p ‾ c k c 0 ) − I R b k c 0 R c 0 b k + 1 R b k c 0 Δ t k 0 ] \begin{aligned} \mathcal{X}_{I}^{k} &=\left[\mathbf{v}_{k}^{b_{k}}, \mathbf{v}_{k+1}^{b_{k+1}}, \mathbf{g}^{c_{0}}, s\right]^{\top} \\ \mathbf{H}_{b_{k+1}}^{b_{k}} &=\left[\begin{array}{cccc} -\mathbf{I} \Delta t_{k} & \mathbf{0} & \frac{1}{2} \mathbf{R}_{b_{k} c_{0}} \Delta t_{k}^{2} & \mathbf{R}_{b_{k} c_{0}}\left(\overline{\mathbf{p}}_{c_{k+1}}^{c_{0}}-\overline{\mathbf{p}}_{c_{k}}^{c_{0}}\right) \\ -\mathbf{I} & \mathbf{R}_{b_{k} c_{0}} \mathbf{R}_{c_{0} b_{k+1}} & \mathbf{R}_{b_{k} c_{0}} \Delta t_{k} & \mathbf{0} \end{array}\right] \end{aligned} XIkHbk+1bk=[vkbk,vk+1bk+1,gc0,s]=[IΔtkI0Rbkc0Rc0bk+121Rbkc0Δtk2Rbkc0ΔtkRbkc0(pck+1c0pckc0)0]
转化成线性最小二乘问题对状态量进行求解:
min ⁡ X I ∑ k ∈ B ∥ z ^ b k + 1 b k − H b k + 1 b k X I k ∥ 2 \min _{\mathcal{X}_{I}} \sum_{k \in \mathcal{B}}\left\|\hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}-\mathbf{H}_{b_{k+1}}^{b_{k}} \mathcal{X}_{I}^{k}\right\|^{2} XIminkBz^bk+1bkHbk+1bkXIk2

STEP4 优化重力方向 g c 0 \bf{g}^{c0} gc0

疑问:为什么需要优化重力向量

STEP 3中利用公式求解重力向量 g c 0 \mathbf{g}^{c_{0}} gc0 过程中,并没有加入模长限制 ∣ g c 0 ∥ = 9.81 \mid g^{c_{0}} \|=9.81 gc0=9.81 。 三维变量 g c 0 \mathbf{g}^{c_{0}} gc0 实际只有两个自由度。

重力向量参数化

三维向量自由度为 2,可以采用球面坐标进行参数化: 东北天=XYZ,这里的w1应该属于010也就是北
g ^ c 0 = ∥ g ∥ ⋅ g ‾ ^ c 0 ^ c 0 + w 1 b ⃗ 1 + w 2 b ⃗ 2 \hat{\mathrm{g}}^{c_{0}}=\|g\| \cdot \hat{\hat{\overline{\mathbf{g}}}^{c_{0}}}^{c_{0}}+w_{1} \vec{b}_{1}+w_{2} \vec{b}_{2} g^c0=gg^c0^c0+w1b 1+w2b 2

其中:

  • w 1 , w 2 w 1, w 2 w1,w2 为待优化变量。

  • g ^ c 0 \hat{\mathrm{g}}^{c_{0}} g^c0 为重力向量在第 0 帧相机坐标系下的表示。

  • g ‾ ^ c 0 \hat{\overline{\mathbf{g}}}^{c_{0}} g^c0 表示方向向量

b ⃗ 1 = { ( g ‾ ^ c 0 × [ 1 , 0 , 0 ] ) , g ^ c 0 ≠ [ 1 , 0 , 0 ] ⊤ ( g ‾ ^ c 0 × [ 0 , 0 , 1 ] ) ,  otherwise  b ⃗ 2 = g ‾ ^ c 0 × b ⃗ 1 \begin{array}{l} \vec{b}_{1}=\left\{\begin{array}{ll} \left(\hat{\overline{\mathbf{g}}}^{c_{0}} \times[1,0,0]\right), & \hat{\mathbf{g}}^{c_{0}} \neq[1,0,0]^{\top} \\ \left(\hat{\overline{\mathbf{g}}}^{c_{0}} \times[0,0,1]\right), & \text { otherwise } \end{array}\right. \\ \vec{b}_{2}=\hat{\overline{\mathbf{g}}}^{c_{0}} \times \vec{b}_{1} \end{array} b 1=(g^c0×[1,0,0]),(g^c0×[0,0,1]),g^c0=[1,0,0] otherwise b 2=g^c0×b 1

将公式代入STEP 3 的公式(13), 待优化变量变为:
X I k = [ v k b k v k + 1 b k + 1 g c 0 s ] → [ v k b k v k + 1 b k + 1 w c 0 s ] \mathcal{X}_{I}^{k}=\left[\begin{array}{c} \mathbf{v}_{k}^{b_{k}} \\ \mathbf{v}_{k+1}^{b_{k+1}} \\ \mathbf{g}^{c_{0}} \\ s \end{array}\right] \rightarrow\left[\begin{array}{c} \mathbf{v}_{k}^{b_{k}} \\ \mathbf{v}_{k+1}^{b_{k+1}} \\ \mathbf{w}^{c_{0}} \\ s \end{array}\right] XIk=vkbkvk+1bk+1gc0svkbkvk+1bk+1wc0s
STEP 3中公式(13)中的观测方程变为:
z ^ b k + 1 b k = [ α b k b k + 1 − p b c + R b k c 0 R c 0 b k + 1 p b c − 1 2 R b k c 0 Δ t k 2 ∥ g ∥ ⋅ g ^ c 0 β b k b k + 1 − R b k c 0 Δ t k ∥ g ∥ ⋅ g ^ c 0 ] \hat{\mathbf{z}}_{b_{k+1}}^{b_{k}}=\left[\begin{array}{c} \boldsymbol{\alpha}_{b_{k} b_{k+1}}-\mathbf{p}_{b c}+\mathbf{R}_{b_{k} c_{0}} \mathbf{R}_{c_{0} b_{k+1}} \mathbf{p}_{b c}-\frac{1}{2} \mathbf{R}_{b_{k} c_{0}} \Delta t_{k}^{2}\|g\| \cdot \hat{\mathbf{g}}^{c_{0}} \\ \boldsymbol{\beta}_{b_{k} b_{k+1}}-\mathbf{R}_{b_{k} c_{0}} \Delta t_{k}\|g\| \cdot \hat{\mathbf{g}}^{c_{0}} \end{array}\right] z^bk+1bk=[αbkbk+1pbc+Rbkc0Rc0bk+1pbc21Rbkc0Δtk2gg^c0βbkbk+1Rbkc0Δtkgg^c0]
采用最小二乘对 X I \mathcal{X}_{I} XI 进行重新优化。

STEP5 对齐导航世界坐标系

计算到这儿,我们得到了重力加速度相对于相机初始时刻坐标系向量 g ^ c 0 \hat{\mathrm{g}}^{c_{0}} g^c0。当然,重力向量相对于世界坐标系的绝对向量我们是一直知道的就是 g = [ 0 , 0 , 9.81 ] T \boldsymbol{g}=[0,0,9.81]^{T} g=[0,0,9.81]T根据这两个重力向量我们就可以知道相机坐标系相对于世界坐标系的关系了,以此为依据将这两个坐标系对齐。

步骤如下:

  • 1 找到 c 0 c_{0} c0 w w w 系的旋转矩阵 R w c 0 = exp ⁡ ( [ θ u ] ) \mathbf{R}_{w c_{0}}=\exp ([\theta \mathbf{u}]) Rwc0=exp([θu])

u = g ^ c 0 × g ^ w ∥ g ^ c 0 × g ^ w ∥ , θ = atan ⁡ 2 ( ∥ g ^ c 0 × g ^ w ∥ , g ^ c 0 ⋅ g ^ w ) \mathbf{u}=\frac{\hat{\mathbf{g}}^{c_{0}} \times \hat{\mathbf{g}}^{w}}{\left\|\hat{\mathbf{g}}^{c_{0}} \times \hat{\mathbf{g}}^{w}\right\|}, \quad \theta=\operatorname{atan} 2\left(\left\|\hat{\mathbf{g}}^{c_{0}} \times \hat{\mathbf{g}}^{w}\right\|, \hat{\mathbf{g}}^{c_{0}} \cdot \hat{\mathbf{g}}^{w}\right) u=g^c0×g^wg^c0×g^w,θ=atan2(g^c0×g^w,g^c0g^w)

这里的 u \bf{u} u是旋转轴。通过将两个重力加速度量叉乘可以得到一个垂直于两个重力向量的向量,以此作为旋转轴,根据向量内积求解两个重力向量的夹角,根据轴角转化为旋转矩阵。就得到了两个坐标系之间的旋转。

  • 2 把所有 c 0 c_{0} c0 坐标系下的变量旋转到 w w w 下。
  • 3 把相机平移和特征点尺度恢复到米制单位。
  • 4至此,完成了系统初始化过程。

补充

简述视觉初始化过程

  • 1 已知俩图像:特征点提取 (fast), 匹配 (光流, 特征描述子).
  • 2 已知俩图像特征匹配点:利用对极几何约束 (E 矩阵, H \mathrm{H} H 矩阵), 计算两图像之间的 pose (update to scale).
  • 3 已知相机 pose, 已知特征点二维坐标: 通过三角化得到三维坐标.
  • 4 已知 3d 点, 2   d 2 \mathrm{~d} 2 d 特征点:通过 Perspective-n-Point ( P n P ) (\mathrm{PnP}) (PnP) 求取新的 相机 pose.

一些容易疑惑的点

  • 初始化完成之前pose的获取:先求取两帧之间的相对位姿,获得自身的pose
  • 初始化完成后pose的获取:根据跟踪情况,就能直接得到3D-2D的关系,然后跳过第三步,利用3D-2D对应关系,直接使用Pnp方法求解pose(也正是使用Pnp,所以保证了整个过程中,所有的pose尺度统一)
  • VSLAM尺度的确定:有了IMU之后,通过两个不同的轨迹对齐,完成了vslam的尺度确定。轨迹对齐过程见【STEP5 对齐导航世界坐标系】
  • 加速度bias为何没有估计:量纲太小,估计不出来。而且其bias对整个结果影响不大。
  • 平移外参 P b c \bf{P_{bc}} Pbc为何没有初始化:旋转是非线性的,平移是线性的。线性影响不大,再者,视觉传感器和IMU传感器一般都是非常近的。

参考

深蓝学院手写VIO课程

你可能感兴趣的:(SLAM从小白到大黑)