我是靠谱客的博主 羞涩跳跳糖,最近开发中收集的这篇文章主要介绍残差Jacobian的推导—手写VIO课程笔记3残差Jacobian的推导,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

残差Jacobian的推导

视觉重投影残差的Jacobian

视觉残差为:

r_c = begin{bmatrix} frac{x_c_j}{z_c_j}-u_c_j\ frac{y_c_j}{z_c_j}-v_c_j end{bmatrix}

对于第i帧中的特征点,它投影到第j帧相机坐标系下的值为:

begin{bmatrix} x_c_j\ y_c_j\ z_c_j\ 1 end{bmatrix} = T_b_c^{-1}T_{wbj}^{-1}T_{wbi}T_{bc}begin{bmatrix} frac{1}{lambda }u_c_i\ frac{1}{lambda }v_c_j\ frac{1}{lambda }\ 1 end{bmatrix}

拆成三维坐标形式为:

将齐次坐标拆为R(旋转)和P(位姿)

为了简化公式,先定义如下变量:

f_b_i=R_b_cf_c_i+p_b_c

f_w=R_{wbi}f_b_i+p_{wbi}

f_b_j=R_{wbj}^T(f_w-p_{wbj})

Jacobian为视觉误差对两个时刻的状态量,外参以及逆深度求导:

根据链式法则,Jacobian的计算可以分成两步走,第一步误差对f_c_j求导

frac{partial r_c}{partial f_c_j}=begin{bmatrix} frac{1}{z_c_j} & 0 & -frac{x_c_j}{z_c_j^2}\ 0& frac{1}{z_c_j} & -frac{y_c_j}{z_c_j^2} end{bmatrix}

rc的每一列 对 fcj的每一行进行求导,得到2X3矩阵

第二步对f_c_j对各状态量求导:

1. 对i时刻的状态量求导

a.对i时刻位移求导,可直接写出如下:

frac{partial f_c_j}{partial delta p_{bibi'}}=R_b_c^TR_{wbj}^T

b.对i时刻角度增量求导

上面公式和i时刻角度相关的量并不多,下面为了简化,直接丢弃了不相关的部分

Jacobian为

2.对j时刻的状态量求导

a. 对位移求导:

frac{partial f_c_j}{partial delta p_{bjbj'}}=-R_b_c^TR_{wbj}^T

b.对角度增量求导,同上面的操作,也简化一下公式

Jacobian为:

3. 对imu和相机之间的外参求导

a.对位移求导:

frac{partial f_c_j}{partial delta p_c_c'}=R_b_c^T(R_{wbj}^TR_{wbi}-I_{3times 3})

b. 对角度增量求导,由于fcj都和Rbc有关,并且比较复杂,所以这次分两部分求导

第一部分Jacobian为

分子可写成:

所以可以得到:

第二部分Jacobian为

4.视觉误差对特征逆深度的求导

IMU预积分残差的雅克比

IMU误差相对于优化变量的Jacobian

在求解非线性方程时,需要知道误差eB对两个关键帧i,j的状态量p,q,v,b^a,b^g的Jacobian

其中对i时刻的b_i^a,b_i^g求导就显得十分复杂,下面进行详细讨论

因为i时刻的bias相关的预积分计算是通过迭代一步一步累计递推的,可以算但是太复杂。所以对于预积分量直接在i时刻的bias附近用一阶泰勒展开来近似,而不用真的去迭代。

其中J表示预积分量对i时刻的bias求导,这些雅克比根据前面讨论的协方差传递公式,能一步步递推得到 J_{k+1}=F_kJ_k

下面讨论IMU误差相对于两帧的PVQ的Jacobian:

由于r_p r_v的误差形式很相近,对各状态量求导的Jacobian形式也很相似,所以这里只对rv的推导进行详细介绍

(1)对i时刻位移Jacobian:frac{partial r_v}{partial delta p_{bibi'}}=0

(2)对i时刻旋转Jacobian

(3)对i时刻速度Jacobian:

(4)对i时刻的加速度bias的Jacobian,注意bias量只和预积分β有关

IMU角度误差相对优化变量的Jacobian

(1)对i时刻姿态求导

上式可化简为:

(2)角度误差对j时刻姿态求导

(3)角度误差对i时刻陀螺仪偏置b_i^g

 

 

 

最后

以上就是羞涩跳跳糖为你收集整理的残差Jacobian的推导—手写VIO课程笔记3残差Jacobian的推导的全部内容,希望文章能够帮你解决残差Jacobian的推导—手写VIO课程笔记3残差Jacobian的推导所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部