首页 > 其他分享 >零偏更新以及预积分的更新

零偏更新以及预积分的更新

时间:2024-10-30 14:44:44浏览次数:6  
标签:partial 1old 积分 beta 更新 零偏 old delta frac

中值积分形式的预积分(一):https://blog.csdn.net/ergevv/article/details/143165323?spm=1001.2014.3001.5501
中值积分形式的预积分(二):https://blog.csdn.net/ergevv/article/details/143262065?spm=1001.2014.3001.5502
零偏更新以及预积分的更新:https://blog.csdn.net/ergevv/article/details/143274896?spm=1001.2014.3001.5501

接前文:中值积分形式的预积分(二):https://blog.csdn.net/ergevv/article/details/143262065?spm=1001.2014.3001.5502

前文介绍的预积分的协方差递推公式的推导,里面有一个矩阵是F,根据之前的推导可以知道,F矩阵里每个公式都代表着前一刻状态量的变化是如何影响到下一刻的,即:

F = δ x k + 1 δ x k = [ I f 12 I δ t − 1 4 ( q b i b k + q b i b k + 1 ) δ t 2 f 15 0 I − [ ω ] × d t 0 0 − I δ t 0 f 32 I − 1 2 ( q b i b k + q b i b k + 1 ) δ t f 35 0 0 0 I 0 0 0 0 0 I ] F = \frac {\delta x_{k+1}}{\delta x_{k}}=\left[ \begin{matrix} I &f_{12}& I\delta t& -\frac{1}{4}(q_{bibk}+q_{bibk+1})\delta t^2 &f_{15} \\ 0 & I-[ω]_×dt &0&0&-I \delta t\\ 0& f_{32}& I& -\frac{1}{2}(q_{bibk}+q_{bibk+1})\delta t & f_{35}\\ 0& 0& 0& I& 0\\ 0 & 0& 0 &0 & I\\ \end{matrix} \right] F=δxk​δxk+1​​= ​I0000​f12​I−[ω]×​dtf32​00​Iδt0I00​−41​(qbibk​+qbibk+1​)δt20−21​(qbibk​+qbibk+1​)δtI0​f15​−Iδtf35​0I​

预积分过程中零偏是固定的,但是在后续优化过程中,零偏会改变,可能会更加接近正确值,因此当零偏改变时,需要对预积分量进行更新。但是当零偏发生变化时,若仍按照前述公式,预积分测量值需要整个重新计算一遍,这个计算成本是比较大的。为了解决这个问题,需要利用线性化来进行零偏变化时预积分项的一阶近似更新方法。

更新后的值 = 更新前的值 + 误差变化量 更新后的值 = 更新前的值 + 误差变化量 更新后的值=更新前的值+误差变化量
exp ⁡ ( [ θ k + 1 n e w ] × ) ≈ exp ⁡ ( [ θ k + 1 o l d ] × ) exp ⁡ ( [ ∂ δ θ k + 1 o l d ∂ δ b 0 g Δ b i g ] × ) α k + 1 n e w ≈ α k + 1 o l d + ∂ δ α k + 1 o l d ∂ δ b 0 g Δ b i g + ∂ δ α k + 1 o l d ∂ δ b 0 a Δ b i a β k + 1 n e w ≈ β k + 1 o l d + ∂ δ β k + 1 o l d ∂ δ b 0 g Δ b i g + ∂ δ β k + 1 o l d ∂ δ b 0 a Δ b i a \begin{align*} \exp([\theta^{new}_{k+1}]_\times) &\approx \exp([\theta^{old}_{k+1}]_\times) \exp([\frac{\partial \delta \theta^{old}_{k+1}}{\partial \delta b^g_0}\Delta b^g_i]_\times) \\ \alpha^{new}_{k+1}& \approx \alpha^{old}_{k+1} + \frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^g_0}\Delta b^g_i + \frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^a_0}\Delta b^a_i \\ \beta^{new}_{k+1}& \approx \beta^{old}_{k+1} + \frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^g_0}\Delta b^g_i + \frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^a_0}\Delta b^a_i \\ \end{align*} exp([θk+1new​]×​)αk+1new​βk+1new​​≈exp([θk+1old​]×​)exp([∂δb0g​∂δθk+1old​​Δbig​]×​)≈αk+1old​+∂δb0g​∂δαk+1old​​Δbig​+∂δb0a​∂δαk+1old​​Δbia​≈βk+1old​+∂δb0g​∂δβk+1old​​Δbig​+∂δb0a​∂δβk+1old​​Δbia​​

现在目的是求出 ∂ δ θ k + 1 o l d ∂ δ b 0 g 、 ∂ δ α k + 1 o l d ∂ δ b 0 g 、 ∂ δ α k + 1 o l d ∂ δ b 0 a 、 ∂ δ β k + 1 o l d ∂ δ b 0 g 、 ∂ δ β k + 1 o l d ∂ δ b 0 a \frac{\partial \delta \theta^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^a_0}、\frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^a_0} ∂δb0g​∂δθk+1old​​、∂δb0g​∂δαk+1old​​、∂δb0a​∂δαk+1old​​、∂δb0g​∂δβk+1old​​、∂δb0a​∂δβk+1old​​,因为零偏是从一开始就存在的,所以可以看到这是预积分结束后的误差状态量对一开始的零偏的求导,即 δ x k + 1 δ x 0 \frac {\delta x_{k+1}}{\delta x_{0}} δx0​δxk+1​​。
假设存在雅可比矩阵
J = δ x k δ x 0 = [ ∂ δ α k ∂ δ α 0 ∂ δ α k ∂ δ θ 0 ∂ δ α k ∂ δ β 0 ∂ δ α k ∂ δ b 0 a ∂ δ α k ∂ δ b 0 g ∂ δ θ k ∂ δ α 0 ∂ δ θ k ∂ δ θ 0 ∂ δ θ k ∂ δ β 0 ∂ δ θ k ∂ δ b 0 a ∂ δ θ k ∂ δ b 0 g ∂ δ β k ∂ δ α 0 ∂ δ β k ∂ δ θ 0 ∂ δ β k ∂ δ β 0 ∂ δ β k ∂ δ b 0 a ∂ δ β k ∂ δ b 0 g ∂ δ b k a ∂ δ α 0 ∂ δ b k a ∂ δ θ 0 ∂ δ b k a ∂ δ β 0 ∂ δ b k a ∂ δ b 0 a ∂ δ b k a ∂ δ b 0 g ∂ δ b k g ∂ δ α 0 ∂ δ b k g ∂ δ θ 0 ∂ δ b k g ∂ δ β 0 ∂ δ b k g ∂ δ b 0 a ∂ δ b k g ∂ δ b 0 g ] J = \frac {\delta x_{k}}{\delta x_{0}}= \left[ \begin{matrix} \frac{\partial \delta \alpha_{k}}{\partial \delta \alpha_0} &\frac{\partial \delta \alpha_{k}}{\partial \delta \theta_0} & \frac{\partial \delta \alpha_{k}}{\partial \delta \beta_0} & \frac{\partial \delta \alpha_{k}}{\partial \delta b^a_0} & \frac{\partial \delta \alpha_{k}}{\partial \delta b^g_0}\\ \frac{\partial \delta \theta_{k}}{\partial \delta \alpha_0} &\frac{\partial \delta \theta_{k}}{\partial \delta \theta_0} & \frac{\partial \delta \theta_{k}}{\partial \delta \beta_0} & \frac{\partial \delta \theta_{k}}{\partial \delta b^a_0} & \frac{\partial \delta \theta_{k}}{\partial \delta b^g_0}\\ \frac{\partial \delta \beta_{k}}{\partial \delta \alpha_0} &\frac{\partial \delta \beta_{k}}{\partial \delta \theta_0} & \frac{\partial \delta \beta_{k}}{\partial \delta \beta_0} & \frac{\partial \delta \beta_{k}}{\partial \delta b^a_0} & \frac{\partial \delta \beta_{k}}{\partial \delta b^g_0}\\ \frac{\partial \delta b^a_{k}}{\partial \delta \alpha_0} &\frac{\partial \delta b^a_{k}}{\partial \delta \theta_0} & \frac{\partial \delta b^a_{k}}{\partial \delta \beta_0} & \frac{\partial \delta b^a_{k}}{\partial \delta b^a_0} & \frac{\partial \delta b^a_{k}}{\partial \delta b^g_0}\\ \frac{\partial \delta b^g_{k}}{\partial \delta \alpha_0} &\frac{\partial \delta b^g_{k}}{\partial \delta \theta_0} & \frac{\partial \delta b^g_{k}}{\partial \delta \beta_0} & \frac{\partial \delta b^g_{k}}{\partial \delta b^a_0} & \frac{\partial \delta b^g_{k}}{\partial \delta b^g_0}\\ \end{matrix} \right] J=δx0​δxk​​= ​∂δα0​∂δαk​​∂δα0​∂δθk​​∂δα0​∂δβk​​∂δα0​∂δbka​​∂δα0​∂δbkg​​​∂δθ0​∂δαk​​∂δθ0​∂δθk​​∂δθ0​∂δβk​​∂δθ0​∂δbka​​∂δθ0​∂δbkg​​​∂δβ0​∂δαk​​∂δβ0​∂δθk​​∂δβ0​∂δβk​​∂δβ0​∂δbka​​∂δβ0​∂δbkg​​​∂δb0a​∂δαk​​∂δb0a​∂δθk​​∂δb0a​∂δβk​​∂δb0a​∂δbka​​∂δb0a​∂δbkg​​​∂δb0g​∂δαk​​∂δb0g​∂δθk​​∂δb0g​∂δβk​​∂δb0g​∂δbka​​∂δb0g​∂δbkg​​​
因为 F = δ x k + 1 δ x k F = \frac {\delta x_{k+1}}{\delta x_{k}} F=δxk​δxk+1​​, J = δ x k δ x 0 J = \frac {\delta x_{k}}{\delta x_{0}} J=δx0​δxk​​,所以:
δ x k + 1 δ x 0 = δ x k + 1 δ x k ∗ δ x k δ x 0 = F J \frac {\delta x_{k+1}}{\delta x_{0}} = \frac {\delta x_{k+1}}{\delta x_{k}} * \frac {\delta x_{k}}{\delta x_{0}} = FJ δx0​δxk+1​​=δxk​δxk+1​​∗δx0​δxk​​=FJ
因此,每次预积分时只需要更新 F J FJ FJ,当需要零偏更新,需要重新计算预积分量时,只需要到 F J FJ FJ去提取 ∂ δ θ k + 1 o l d ∂ δ b 0 g 、 ∂ δ α k + 1 o l d ∂ δ b 0 g 、 ∂ δ α k + 1 o l d ∂ δ b 0 a 、 ∂ δ β k + 1 o l d ∂ δ b 0 g 、 ∂ δ β k + 1 o l d ∂ δ b 0 a \frac{\partial \delta \theta^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \alpha^{old}_{k+1}}{\partial \delta b^a_0}、\frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^g_0}、\frac{\partial \delta \beta^{old}_{k+1}}{\partial \delta b^a_0} ∂δb0g​∂δθk+1old​​、∂δb0g​∂δαk+1old​​、∂δb0a​∂δαk+1old​​、∂δb0g​∂δβk+1old​​、∂δb0a​∂δβk+1old​​,再代入零偏变化时预积分项的一阶近似更新公式

标签:partial,1old,积分,beta,更新,零偏,old,delta,frac
From: https://blog.csdn.net/ergevv/article/details/143274896

相关文章

  • SQL注入语句笔记(很全,持续更新ing)
    SQL注入原理:1.参数用户可控化:前端传递给后端的参数是用户可以控制的2.参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询sql注入常用知识:1.information_schema:表示所有信息,包括库、表、列2.information_schema.tables:记录所有表名信息的表3.information_sch......
  • 更新 state 中的数组
    同对象一样,当你想要更新存储于state中的数组时,你需要创建一个新的数组(或者创建一份已有数组的拷贝值),并使用新数组设置state。在没有mutation的前提下更新数组每次要更新一个数组时,你需要把一个新的数组传入state的setting方法中。为此,你可以通过使用像filter()和map......
  • [一直更新中]一句话题解
    目录一句话题解2024.10.29AT_abc290_fAT_arc156_c2024.10.30P5749[IOI2019]排列鞋子AT_abc285_e一句话题解不能什么题都随便写写就过了,留点印象好一点。一直更新。2024.10.29AT_abc290_f组合数数。满足树的形态要有\(\sumdeg_i=2n-2\)。考虑目前有\(k\)个儿子节点,直径......
  • 深入浅出:SpringBoot启动流程源码分析(持续更新中......)最新日期:2024年10月29日
    Hello,大家好,我是此林。今天来深入底层讲一讲SpringBoot是如何启动的,也就是我们单击运行SpringBoot启动类,它底层发生了什么?SpringBoot启动类很简单,只有一行代码。我们点进run()方法。我们发现,它底层其实进行了两步操作。第一步是new出一个SpringApplication对象,第二个是......
  • 微积分甲II - 期末复习
    微积分(甲)II辅学:期末复习一、级数级数\(\suma_n\)收敛(发散)等价于数列\((\sum_{i=1}^na_i)\)收敛(发散)。1.1正项级数比较判别法:\(\suma_n\)收敛,\(b_n\leqa_n\),\(\sumb_n\)收敛;\(\suma_n\)发散,\(b_n\geqa_n\),\(\sumb_n\)发散。积分判别法:\(\int_1^{+\inft......
  • Java+Uni-App基于微信小程序的洗车服务系统/汽车服务会员积分商城系统
    项目介绍项目介绍基于微信小程序的洗车预约与积分兑换饰品商城系统的开发背景,源自于现代社会对于便捷、高效生活方式的追求以及消费者对个性化服务体验日益增长的需求。随着汽车保有量的不断攀升,洗车服务作为日常汽车保养的基本需求之一,其市场规模日益扩大。然而,传统洗车......
  • 袋鼠云产品功能更新报告12期|让数据资产管理更高效
    本期,我们更新和优化了数据资产平台相关功能,为您提供更高效的产品能力。以下为第12期袋鼠云产品功能更新报告,请继续阅读。一、【元数据】重点更新|01元数据管理优化,支持配置表生命周期之前系统中缺少一个可以基于数据源和数据库维度,批量配置数据表生命周期的入口,导致用户在处理......
  • JAVA对于图片的花式操作(不定期更新)
    JAVA对于图片的花式操作(不定期更新)MultipartFile转Base64字符串图片url转Base64字符串图片url转MultipartFile图片url转File流base64图片压缩引入依赖代码编写抠图MultipartFile转Base64字符串/***MultipartFile文件转bash64字符串**@parammult......
  • 【DzzOffice官方动态】DzzOffice更新至V2.3.0版本!
    ......
  • 安卓13 连接usb设备后不更新ui
    总纲android13rom开发总纲说明文章目录1.前言2.问题分析3.代码更改4.彩蛋1.前言  有些界面在链接usb设备后,ui会被刷新,导致闪烁问题。2.问题分析像这种问题一般是usb事件,导致的ui事件更新了,处理方法是禁止该事件3.代码更改这块我们就需要在输入事件管......