VINS-Mono+Fusion源码解析系列(十六):重力修正

1. 基于重力先验知识进行修正

(1)理论推导

​ 以上视觉惯性对齐做的是通过对每一组图像帧和IMU预积分之间的关系,求出每一帧的速度,枢纽帧的重力加速度和尺度。在求解时,没有引入重力的先验知识,而在大部分情况下重力的先验是已知的,因此需要利用重力的先验知识对估计出的枢纽帧处的重力加速度进行修正。

​ 取出前面已经求出的枢纽帧下的重力方向,将其大小设为先验值9.81,作为当前重力的大小和方向。由于重力大小不会发生变化,当方向变化时重力作用点一定是在球面上运动的,如下图所示。在球面的切平面上,将其分解为两个相互正交的向量 b 1 b_1 b1 b 2 b_2 b2,二者的矢量和为重力运动的方向。由此可将之前的3自由度重力转化为2自由度重力,在迭代求解中不断优化 b 1 b_1 b1 b 2 b_2 b2,来获取最优解。

:之前在估计枢纽帧处的重力 g c 0 g^{c_0} gc0时有3个自由度,现在修正时引入先验后有2个自由度。在ORB-SLAM3中,将重力先验直接放到整体中基于最大后验估计进行优化,而在VINS-Mono中是分两步进行的。
重力修正 通过以上描述可知,枢纽帧重力加速度大小为先验的9.81(记为 ∣ ∣ g ˇ ∣ ∣ ||\check{g}|| ∣∣gˇ∣∣),方向为前面初始化得到的 g ⃗ \vec{g} g 。那么通过迭代求解来调整重力的初始值为 ∣ ∣ g ˇ ∣ ∣ ⋅ g ⃗ ||\check{g}|| \cdot \vec{g} ∣∣gˇ∣∣g ,重力调整表达式可写为: ∣ ∣ g ˇ ∣ ∣ ⋅ g ⃗ + w 1 b ⃗ 1 + w 2 b ⃗ 2 ||\check{g}|| \cdot \vec{g}+w_1\vec{b}_1 + w_2\vec{b}_2 ∣∣gˇ∣∣g +w1b 1+w2b 2。其中 w 1 w_1 w1 w 2 w_2 w2为待调整的系数。

​ 于是,位移预积分量的线性方程可转化为:
α b k + 1 b k − p c b + R c 0 b k ⋅ R b k + 1 c 0 ⋅ p c b = R c 0 b k ( p c k + 1 c 0 − p c k c 0 ) ⋅ s − v b k b k Δ t k + 1 2 R c 0 b k g c 0 Δ t 2 ⇒ α b k + 1 b k − p c b + R c 0 b k ⋅ R b k + 1 c 0 ⋅ p c b − 1 2 R c 0 b k Δ t k 2 ∣ ∣ g ˇ ∣ ∣ g ⃗ = R c 0 b k ( p c k + 1 c 0 − p c k c 0 ) ⋅ s − v b k b k Δ t k + 1 2 R c 0 b k Δ t 2 B W 其中 , w 1 b ⃗ 1 + w 2 b ⃗ 2 = [ b ⃗ 1 b ⃗ 2 ] [ w 1 w 2 ] \alpha_{b_{k+1}}^{b_k} - p_c^b + R_{c_0}^{b_k} \cdot R_{b_{k+1}}^{c_0} \cdot p_c^b = R_{c_0}^{b_k}(p_{c_{k+1}}^{c_0} - p_{c_k}^{c_0}) \cdot s - v_{b_k}^{b_k}\Delta t_k + \frac{1}{2}R_{c_0}^{b_k}g^{c_0}\Delta t^2 \\ \Rightarrow \\ \alpha_{b_{k+1}}^{b_k} - p_c^b + R_{c_0}^{b_k} \cdot R_{b_{k+1}}^{c_0} \cdot p_c^b - \frac{1}{2}R_{c_0}^{b_k}\Delta t_k^2||\check{g}||\vec{g} = R_{c_0}^{b_k}(p_{c_{k+1}}^{c_0} - p_{c_k}^{c_0}) \cdot s - v_{b_k}^{b_k}\Delta t_k + \frac{1}{2}R_{c_0}^{b_k}\Delta t^2BW \\ 其中,w_1\vec{b}_1 + w_2\vec{b}_2 = \left[\begin{array}{cc} \vec{b}_1 & \vec{b}_2 \end{array} \right]\left[\begin{array}{cc} w_1 \\ w_2 \end{array} \right] αbk+1bkpcb+Rc0bkRbk+1c0pcb=Rc0bk(pck+1c0pckc0)svbkbkΔtk+21Rc0bkgc0Δt2αbk+1bkpcb+Rc0bkRb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值