JzHuai0108 / okvis

OKVIS: Open Keyframe-based Visual-Inertial SLAM.
Other
2 stars 3 forks source link

preintegration accuracy #3

Open cumtchenchang opened 10 months ago

cumtchenchang commented 10 months ago

作者你好,看到你的代码中对预积分进行了修改 0924389b3841c6b47008d3be533a524, 不过我在自己的代码中进行了精度验证,没有正向效果。 还有想问一下有没有吃过CPI的形式:https://github.com/rpng/cpi。 祝好

cumtchenchang commented 10 months ago

OKIVS对误差施加的是右扰动,对变量施加的是左扰动

JzHuai0108 commented 10 months ago

OKVIS误差的定义是相对世界系的误差,我也采用了这用误差定义,这种定义可以看做是right invariant error的简化版。误差的定位是\f$ x = \delta x + \hat{x}\f$, \f$ R{WB} = \exp(\delta\theta) \hat{R}{WB}\f$, 其中\f$\hat{.}\f$表示估计量。 “OKIVS对误差施加的是右扰动” 不太理解这是啥意思哈。“对变量施加的是左扰动“ 我上面的定义应该是这样的吧。

关于截图中代码的修改,我推导发现preintegration factor covariance不太严格,所以做了一下的更改。原来的实现计算的factor covariance会偏大,参考这个文档。 我代码验证了一下,修改后算出来的covariance和传统的机械编排以及gtsam算出的covariance很接近了。 关于正向改进,我做IMU组合实验的经验是,给IMU的噪声x (0.5 - 2)的系数,实验效果应该相差不大。所以我上面的改动也不太容易看出来哈。

我吃过CPI形式的预积分。Pardon me Dr Eckenhoff for not positive remarks. 个人感觉closed form integration是做了一些简化假设才实现的closed-form,对精度改进我感觉应该微弱。实际中,最流行的代码是最容易抄的代码,而不是复杂的精度好一些的,:)。